Browse Source

自动发布定时任务开发完成

master_hella_20240701
赵雪冰 12 months ago
parent
commit
ac9a053bd0
  1. 9
      win-module-infra/win-module-infra-api/src/main/java/com/win/module/infra/api/trends/TrendsApi.java
  2. 14
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/trends/TrendsApiImpl.java
  3. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/job/PurchaseOrderJob.java
  4. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/job/PurchasePlanJob.java
  5. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java
  6. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java
  7. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java
  8. 22
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

9
win-module-infra/win-module-infra-api/src/main/java/com/win/module/infra/api/trends/TrendsApi.java

@ -13,4 +13,13 @@ public interface TrendsApi {
*/
void createTrends(Long tableId, String tableName, String content, TrendsTypeEnum trendsTypeEnum);
/**
* 创建动态记录通过记录,传入用户ID
* 因为定时任务执行时拿不到用户ID
* @param tableId 表数据id
* @param tableName 表名
* @param content 内容
* @param trendsTypeEnum com.win.module.infra.enums.TrendsTypeEnum枚举
*/
void createTrendsByTask(Long tableId, String tableName, String content, TrendsTypeEnum trendsTypeEnum,String userId);
}

14
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/api/trends/TrendsApiImpl.java

@ -47,4 +47,18 @@ public class TrendsApiImpl implements TrendsApi {
}
@Override
public void createTrendsByTask(Long tableId, String tableName, String content, TrendsTypeEnum trendsTypeEnum, String userId) {
TrendsCreateReqDTO createDTO = new TrendsCreateReqDTO();
createDTO.setTableId(tableId);
createDTO.setTableName(tableName);
createDTO.setType(trendsTypeEnum.getType());
createDTO.setContent(content);
createDTO.setCreator(userId);
// trendsService.createTrends(createDTO);
TrendsMessage trendsMessage = TrendsConvert.INSTANCE.convertMessage(createDTO);
trendsProducer.sendMessage(trendsMessage);
// unifiedMessageApi.sendMessage(createDTO.getTableName(),createDTO.getType(),createDTO.getTableId());
}
}

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/job/PurchaseOrderJob.java

@ -0,0 +1,32 @@
package com.win.module.wms.job;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.win.framework.quartz.core.handler.JobHandler;
import com.win.framework.tenant.core.context.TenantContextHolder;
import com.win.module.wms.service.purchase.PurchaseMainService;
import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
@Slf4j
public class PurchaseOrderJob implements JobHandler {
@Lazy
@Resource
private PurchaseMainService purchaseMainService;
@Override
public String execute(String param) throws Exception {
JSONObject jsonObject= (JSONObject) JSONUtil.parse(param);
log.info("【采购订单自动发布】----开始,请求参数:{}",jsonObject.get("tenantId").toString());
TenantContextHolder.setTenantId(Long.valueOf(jsonObject.get("tenantId").toString()));
purchaseMainService.autoHandlePurchaseMainByJob();
log.info("【采购订单自动发布】----结束");
return "采购订单自动发布";
}
}

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/job/PurchasePlanJob.java

@ -0,0 +1,32 @@
package com.win.module.wms.job;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.win.framework.quartz.core.handler.JobHandler;
import com.win.framework.tenant.core.context.TenantContextHolder;
import com.win.module.wms.service.purchasePlan.PurchasePlanMainService;
import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
@Slf4j
public class PurchasePlanJob implements JobHandler {
@Lazy
@Resource
private PurchasePlanMainService purchasePlanMainService;
@Override
public String execute(String param) throws Exception {
JSONObject jsonObject= (JSONObject) JSONUtil.parse(param);
log.info("【要货计划主自动接收】----开始,请求参数:{}",jsonObject.get("tenantId").toString());
TenantContextHolder.setTenantId(Long.valueOf(jsonObject.get("tenantId").toString()));
purchasePlanMainService.autoAccPurchasePlan();
log.info("【要货计划主自动接收】----结束");
return "要货计划主自动接收";
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java

@ -173,4 +173,9 @@ public interface PurchaseMainService {
long getPurchaseCount(boolean isOpen);
List<PurchaseMainDO> getPurchaseMainList(CustomConditions conditions);
/**
* 自动发布采购订单
*/
void autoHandlePurchaseMainByJob();
}

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java

@ -54,6 +54,7 @@ import com.win.module.wms.service.supplier.SupplierService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils;
import com.win.module.wms.util.LocalDateTimeAdapter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -72,6 +73,7 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
*
* @author 超级管理员
*/
@Slf4j
@Service
@Validated
public class PurchaseMainServiceImpl implements PurchaseMainService {
@ -152,6 +154,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
private PurchaseMainDO validatePurchaseMainExists(Long id) {
PurchaseMainDO purchaseMainDO = purchaseMainMapper.selectById(id);
if (purchaseMainDO == null) {
log.error("采购收货申请主不存在,查询条件:{}",id);
throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS);
}
return purchaseMainDO;
@ -604,11 +607,13 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
PurchaseMainDO mainDO = validatePurchaseMainExists(id);
Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber());
if (count > 0) {
log.error("采购订单存在要货计划任务单,查询条件:{}",mainDO.getNumber());
throw new ServiceException(PURCHASE_MAIN_EXISTS);
}
// 校验是否有子表数据
List<PurchaseDetailDO> detailDOList = purchaseDetailMapper.selectByMasterId(mainDO.getId());
if(detailDOList == null || detailDOList.size() == 0){
log.error("采购收货申请子不存在,查询条件:{}",mainDO.getId());
throw exception(PURCHASERECEIPT_REQUEST_DETAIL_NOT_EXISTS);
}
//如果是离散单
@ -629,6 +634,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
purchasePlanMainDO.setSupplierCode(mainDO.getSupplierCode());
RuleRespVO ruleRespVO = ruleService.purchasePlan(mainDO.getSupplierCode(), null);
if (ruleRespVO == null) {
log.error("供应商代码不存在,查询条件:{}",mainDO.getSupplierCode());
throw new ServiceException(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
} else {
JSONObject conditionObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
@ -659,6 +665,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
purchaseDetailDOQueryWrapper.eq("available","TRUE");
List<PurchaseDetailDO> purchasePlanDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper);
if(purchasePlanDetailDOList == null || purchasePlanDetailDOList.size() == 0){
log.error("采购订单子不存在,查询条件:{}",mainDO.getNumber());
throw exception(PURCHASE_DETAIL_NOT_EXISTS);
}
PurchaseDetailDO temp = purchasePlanDetailDOList.get(0);
@ -705,6 +712,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
interfaceInfoDO.setCreator("1");
interfaceInfoDO.setCreateTime(LocalDateTime.now());
interfaceInfoDO.setInterfaceStatus("3");
interfaceInfoDO.setTenantId(mainDO.getTenantId().toString());
interfaceInfoService.insertInterfaceData(interfaceInfoDO);
// 要货计划 接受/不接受/下架时,创建 接口表数据
@ -714,14 +722,15 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
interfaceInfoDODetail.setInterfaceName("推送要货计划子");
interfaceInfoDODetail.setUrl("/wms/purchase-main/acc");
interfaceInfoDODetail.setReqBody(gson.toJson(purchasePlanDetailDOListInterFace));
interfaceInfoDO.setCreator("1");
interfaceInfoDODetail.setCreator("1");
interfaceInfoDODetail.setCreateTime(LocalDateTime.now());
interfaceInfoDODetail.setInterfaceStatus("3");
interfaceInfoDODetail.setTenantId(mainDO.getTenantId().toString());
interfaceInfoService.insertInterfaceData(interfaceInfoDODetail);
}
}
mainDO.setStatus(OrderStatusEnum.PUBLISHED.getCode());//增加操作记录
trendsApi.createTrends(id, "order_purchase_main", "发布了采购订单", TrendsTypeEnum.ORDER_PUBLISH);
trendsApi.createTrendsByTask(id, "order_purchase_main", "发布了采购订单", TrendsTypeEnum.ORDER_PUBLISH,mainDO.getCreator());
res = purchaseMainMapper.updateById(mainDO);
// 添加到接口记录表
@ -738,6 +747,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
interfaceInfoDO.setCreator("1");
interfaceInfoDO.setCreateTime(LocalDateTime.now());
interfaceInfoDO.setInterfaceStatus("3");
interfaceInfoDO.setTenantId(mainDO.getTenantId().toString());
interfaceInfoService.insertInterfaceData(interfaceInfoDO);
// 采购订单 发布时,创建 接口表数据
@ -747,9 +757,10 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
interfaceInfoDODetail.setInterfaceName("推送采购订单子");
interfaceInfoDODetail.setUrl("/wms/purchase-main/publish");
interfaceInfoDODetail.setReqBody(gson.toJson(detailDOList));
interfaceInfoDO.setCreator("1");
interfaceInfoDODetail.setCreator("1");
interfaceInfoDODetail.setCreateTime(LocalDateTime.now());
interfaceInfoDODetail.setInterfaceStatus("3");
interfaceInfoDODetail.setTenantId(mainDO.getTenantId().toString());
interfaceInfoService.insertInterfaceData(interfaceInfoDODetail);
return res;
}
@ -990,4 +1001,16 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
return purchaseMainMapper.selectList(conditions);
}
@Override
@Transactional
public void autoHandlePurchaseMainByJob() {
LambdaQueryWrapperX<PurchaseMainDO> purchaseMainDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
purchaseMainDOLambdaQueryWrapperX.eq(PurchaseMainDO::getStatus,"1");// 准备状态的数据
purchaseMainDOLambdaQueryWrapperX.orderByAsc(PurchaseMainDO::getCreateTime);
purchaseMainDOLambdaQueryWrapperX.last(" limit 50");
List<PurchaseMainDO> mainDOList = purchaseMainMapper.selectList(purchaseMainDOLambdaQueryWrapperX);
for(PurchaseMainDO purchaseMainDO:mainDOList){
this.publishPurchaseMain(purchaseMainDO.getId());
}
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java

@ -173,4 +173,9 @@ public interface PurchasePlanMainService {
PurchasePlanMainRespVO queryPurchasePlan(String supplierCode);
List<PurchasePlanMainDO> getPurchasePlanMainList(CustomConditions conditions);
/**
* 定时任务自动接收
*/
void autoAccPurchasePlan();
}

22
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

@ -531,6 +531,8 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
}
if("TRUE".equals(mainDO.getAutoAccept())){
mainDO.setStatus(PurchasePlanStatusEnum.ACCEPTED.getCode());
// 接收
this.accPurchasePlanMain(mainDO.getId());
}else {
mainDO.setStatus(PurchasePlanStatusEnum.PUBLISHED.getCode());//增加操作记录
}
@ -552,7 +554,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
public Integer accPurchasePlanMain(Long id) {
PurchasePlanMainDO mainDO = validatePurchasePlanMainExists(id);
mainDO.setStatus(PurchasePlanStatusEnum.ACCEPTED.getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "接受了要货计划申请", TrendsTypeEnum.PLAN_AGREE);
trendsApi.createTrendsByTask(id, "plan_purchase_main", "接受了要货计划申请", TrendsTypeEnum.PLAN_AGREE,mainDO.getCreator());
//发送邮件给供应商
MailSendSingleToSUpplierdeliverReqDTO mailSendSingleToSUpplierdeliverReqDTO = new MailSendSingleToSUpplierdeliverReqDTO();
SupplierDO supplierDO = supplierService.selectSupplier(mainDO.getSupplierCode());
@ -578,6 +580,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
interfaceInfoDO.setCreator("1");
interfaceInfoDO.setCreateTime(LocalDateTime.now());
interfaceInfoDO.setInterfaceStatus("3");
interfaceInfoDO.setTenantId(String.valueOf(mainDO.getTenantId()));
interfaceInfoService.insertInterfaceData(interfaceInfoDO);
List<PurchasePlanDetailDO> detailList = purchasePlanDetailMapper.selectList(id);
@ -591,6 +594,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
interfaceInfoDO.setCreator("1");
interfaceInfoDODetail.setCreateTime(LocalDateTime.now());
interfaceInfoDODetail.setInterfaceStatus("3");
interfaceInfoDO.setTenantId(String.valueOf(mainDO.getTenantId()));
interfaceInfoService.insertInterfaceData(interfaceInfoDODetail);
return purchasePlanMainMapper.updateById(mainDO);
}
@ -684,4 +688,20 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
public List<PurchasePlanMainDO> getPurchasePlanMainList(CustomConditions conditions) {
return purchasePlanMainMapper.getPurchasePlanMainList(conditions);
}
@Override
@Transactional
public void autoAccPurchasePlan() {
LambdaQueryWrapperX<PurchasePlanMainDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
List<String> statusList = new ArrayList<>();
statusList.add("1");
statusList.add("3");
lambdaQueryWrapperX.in(PurchasePlanMainDO::getStatus,statusList);
lambdaQueryWrapperX.orderByAsc(PurchasePlanMainDO::getCreateTime);
lambdaQueryWrapperX.last(" limit 50 ");
List<PurchasePlanMainDO> purchasePlanMainDOS = purchasePlanMainMapper.selectList(lambdaQueryWrapperX);
for(PurchasePlanMainDO purchasePlanMainDO:purchasePlanMainDOS){
this.accPurchasePlanMain(purchasePlanMainDO.getId());
}
}
}

Loading…
Cancel
Save