立体仓优化

This commit is contained in:
mashuai 2026-02-10 17:00:19 +08:00
parent 074d9d7a81
commit 9f5b4bc8ec
5 changed files with 58 additions and 61 deletions

View File

@ -1,7 +1,9 @@
package com.bonus.common.biz.utils; package com.bonus.material.common.utils;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.utils.StringHelper;
import com.bonus.material.ma.service.ITypeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
@ -11,7 +13,9 @@ import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.*; import java.io.*;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
@ -22,8 +26,12 @@ import java.nio.charset.StandardCharsets;
* @author bonus * @author bonus
*/ */
@Slf4j @Slf4j
@Component
public class AutomaticHttpHelper { public class AutomaticHttpHelper {
@Resource
private ITypeService typeService;
public static final String KEY = "$jqgcYouote@c103"; public static final String KEY = "$jqgcYouote@c103";
public static String sendHttpPost(String url, String JSONBody) throws Exception { public static String sendHttpPost(String url, String JSONBody) throws Exception {
@ -40,7 +48,7 @@ public class AutomaticHttpHelper {
return responseContent; return responseContent;
} }
public static String sendHttpPostPushCost(String url, String JSONBody) throws Exception { public String sendHttpPostPushCost(String url, String JSONBody) throws Exception {
// 获取token // 获取token
String token = getToken(); String token = getToken();
if (StringHelper.isEmpty(token)) { if (StringHelper.isEmpty(token)) {
@ -187,11 +195,13 @@ public class AutomaticHttpHelper {
* *
* @return * @return
*/ */
private static String getToken() { private String getToken() {
// 立体库本地测试token路径 // 立体库本地测试token路径
//String tokenUrl = MaterialConstants.TEST_TOKEN_URL; //String tokenUrl = MaterialConstants.TEST_TOKEN_URL;
// 立体库生产环境token路径 // 立体库生产环境token路径
String tokenUrl = MaterialConstants.PROD_TOKEN_URL; //String tokenUrl = MaterialConstants.PROD_TOKEN_URL;
// 改为从数据库根据key直接获取方便后期维护
String tokenUrl = typeService.getAsToken();
log.info("立体仓获取token路径:{}", tokenUrl); log.info("立体仓获取token路径:{}", tokenUrl);
try { try {
String userName = "ZNXT"; String userName = "ZNXT";

View File

@ -4,20 +4,18 @@ import java.io.OutputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.bonus.common.biz.constant.GlobalConstants; import com.bonus.common.biz.constant.GlobalConstants;
import com.bonus.common.biz.domain.purchase.AutomaticInPutDto;
import com.bonus.common.biz.domain.purchase.AutomaticOutPutDto; import com.bonus.common.biz.domain.purchase.AutomaticOutPutDto;
import com.bonus.common.biz.domain.repair.RepairInputDetails;
import com.bonus.common.biz.enums.*; import com.bonus.common.biz.enums.*;
import com.bonus.common.biz.utils.AutomaticHttpHelper; import com.bonus.material.common.utils.AutomaticHttpHelper;
import com.bonus.material.basic.domain.BmAgreementInfo; import com.bonus.material.basic.domain.BmAgreementInfo;
import com.bonus.material.basic.mapper.BmAgreementInfoMapper; import com.bonus.material.basic.mapper.BmAgreementInfoMapper;
import com.bonus.material.common.mapper.SelectMapper; import com.bonus.material.common.mapper.SelectMapper;
import com.bonus.material.ma.service.ITypeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
@ -97,6 +95,12 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService {
@Resource @Resource
private BmAgreementInfoMapper bmAgreementInfoMapper; private BmAgreementInfoMapper bmAgreementInfoMapper;
@Resource
private AutomaticHttpHelper automaticHttpHelper;
@Resource
private ITypeService typeService;
/** /**
* 查询领料任务 * 查询领料任务
* *
@ -1655,9 +1659,10 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService {
// 立体库本地建立出库单接口路径 // 立体库本地建立出库单接口路径
//String url = MaterialConstants.TEST_CREATE_OUT_URL; //String url = MaterialConstants.TEST_CREATE_OUT_URL;
// 立体库生产建立出库单接口路径 // 立体库生产建立出库单接口路径
String url = MaterialConstants.PROD_CREATE_OUT_URL; //String url = MaterialConstants.PROD_CREATE_OUT_URL;
String url = typeService.getAsOutUrl();
log.info("立体仓建立出库单路径:{}", url); log.info("立体仓建立出库单路径:{}", url);
String data = AutomaticHttpHelper.sendHttpPostPushCost(url, body); String data = automaticHttpHelper.sendHttpPostPushCost(url, body);
log.info("传输立体仓返回data:{}", data); log.info("传输立体仓返回data:{}", data);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
System.err.println("立体仓出库单创建失败"); System.err.println("立体仓出库单创建失败");

View File

@ -11,7 +11,7 @@ import com.bonus.common.biz.domain.purchase.AutomaticOutPutDto;
import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.LeaseTaskStatusEnum; import com.bonus.common.biz.enums.LeaseTaskStatusEnum;
import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.biz.utils.AutomaticHttpHelper; import com.bonus.material.common.utils.AutomaticHttpHelper;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
@ -118,6 +118,9 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService {
@Resource @Resource
private ITypeService typeService; private ITypeService typeService;
@Resource
private AutomaticHttpHelper automaticHttpHelper;
/** /**
* 新增领用任务 * 新增领用任务
@ -1221,8 +1224,9 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService {
// 立体库本地建立出库单接口路径 // 立体库本地建立出库单接口路径
//String url = MaterialConstants.TEST_CREATE_OUT_URL; //String url = MaterialConstants.TEST_CREATE_OUT_URL;
// 立体库生产建立出库单接口路径 // 立体库生产建立出库单接口路径
String url = MaterialConstants.PROD_CREATE_OUT_URL; //String url = MaterialConstants.PROD_CREATE_OUT_URL;
String data = AutomaticHttpHelper.sendHttpPostPushCost(url, body); String url = typeService.getAsOutUrl();
String data = automaticHttpHelper.sendHttpPostPushCost(url, body);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
throw new RuntimeException("立体仓出库单创建失败"); throw new RuntimeException("立体仓出库单创建失败");
} }

View File

@ -7,7 +7,7 @@ import com.bonus.common.biz.domain.purchase.AutomaticInPutDto;
import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum; import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum; import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.biz.utils.AutomaticHttpHelper; import com.bonus.material.common.utils.AutomaticHttpHelper;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.lease.mapper.LeaseOutDetailsMapper; import com.bonus.material.lease.mapper.LeaseOutDetailsMapper;
@ -22,6 +22,7 @@ import com.bonus.material.purchase.service.IPurchaseStorageService;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.task.mapper.TmTaskMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -36,6 +37,7 @@ import java.util.stream.Collectors;
* @create 2024/10/21 13:53 * @create 2024/10/21 13:53
*/ */
@Service @Service
@Slf4j
public class PurchaseStorageServiceImpl implements IPurchaseStorageService { public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
@Resource @Resource
@ -56,6 +58,9 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
@Resource @Resource
private ITypeService typeService; private ITypeService typeService;
@Resource
private AutomaticHttpHelper automaticHttpHelper;
private final ReentrantLock lock = new ReentrantLock(true); private final ReentrantLock lock = new ReentrantLock(true);
/** /**
@ -277,33 +282,18 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
// 立体库本地建立入库单接口路径 // 立体库本地建立入库单接口路径
//String url = MaterialConstants.TEST_CREATE_IN_URL; //String url = MaterialConstants.TEST_CREATE_IN_URL;
// 立体库生产建立入库单接口路径 // 立体库生产建立入库单接口路径
String url = MaterialConstants.PROD_CREATE_IN_URL; //String url = MaterialConstants.PROD_CREATE_IN_URL;
String data = AutomaticHttpHelper.sendHttpPostPushCost(url, body); String url = typeService.getAsInUrl();
log.info("立体库获取建立新购入库单路径:{}", url);
String data = automaticHttpHelper.sendHttpPostPushCost(url, body);
log.info("立体库建立新购入库单返回data{}", data);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败"); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败");
} }
JSONObject object = JSONObject.parseObject(data); JSONObject object = JSONObject.parseObject(data);
String code = object.getString("code"); String code = object.getString("code");
if ("0".equals(code)) { log.info("立体库建立新购入库单返回code{}", code);
// 修改状态为待上架 if (!"0".equals(code)) {
if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) {
// 数量设备
purchaseStorageMapper.updateNumById(PurchaseTaskStatusEnum.TO_UPLOAD.getStatus(), purchaseDto.getPurchaseId(), purchaseDto.getInputNum());
} else {
// 修改上架数量
purchaseStorageMapper.updateUpNum(Long.valueOf(purchaseDto.getPurchaseId()), BigDecimal.valueOf(purchaseDto.getInPutList().size()));
// 编码设备
for (PurchaseDto dto : purchaseDto.getInPutList()) {
dto.setTypeId(purchaseDto.getTypeId());
// 待上架
dto.setMaStatus("19");
purchaseStorageMapper.updateMaStatus(dto);
}
// 修改详情任务状态
purchaseStorageMapper.updatePurchaseStatus(PurchaseTaskStatusEnum.TO_UPLOAD.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));
}
return AjaxResult.success("立体仓入库单创建成功");
} else {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败"); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败");
} }
} }

View File

@ -15,7 +15,7 @@ import com.bonus.common.biz.domain.lease.LeaseOutDetails;
import com.bonus.common.biz.domain.purchase.AutomaticInPutDto; import com.bonus.common.biz.domain.purchase.AutomaticInPutDto;
import com.bonus.common.biz.domain.repair.RepairInputExportDetails; import com.bonus.common.biz.domain.repair.RepairInputExportDetails;
import com.bonus.common.biz.enums.*; import com.bonus.common.biz.enums.*;
import com.bonus.common.biz.utils.AutomaticHttpHelper; import com.bonus.material.common.utils.AutomaticHttpHelper;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
@ -36,7 +36,7 @@ import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.domain.TmTaskAgreement; import com.bonus.material.task.domain.TmTaskAgreement;
import com.bonus.material.task.mapper.TmTaskAgreementMapper; import com.bonus.material.task.mapper.TmTaskAgreementMapper;
import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.task.mapper.TmTaskMapper;
import org.springframework.dao.DataAccessException; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.bonus.material.repair.mapper.RepairInputDetailsMapper; import com.bonus.material.repair.mapper.RepairInputDetailsMapper;
import com.bonus.common.biz.domain.repair.RepairInputDetails; import com.bonus.common.biz.domain.repair.RepairInputDetails;
@ -52,6 +52,7 @@ import javax.annotation.Resource;
* @date 2024-10-16 * @date 2024-10-16
*/ */
@Service @Service
@Slf4j
public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService { public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService {
@Resource @Resource
private RepairInputDetailsMapper repairInputDetailsMapper; private RepairInputDetailsMapper repairInputDetailsMapper;
@ -75,6 +76,9 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService
@Resource @Resource
private ITypeService typeService; private ITypeService typeService;
@Resource
private AutomaticHttpHelper automaticHttpHelper;
/** /**
* 查询修试后入库 * 查询修试后入库
* *
@ -674,34 +678,18 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService
// 立体库本地建立入库单接口路径 // 立体库本地建立入库单接口路径
//String url = MaterialConstants.TEST_CREATE_IN_URL; //String url = MaterialConstants.TEST_CREATE_IN_URL;
// 立体库生产建立入库单接口路径 // 立体库生产建立入库单接口路径
String url = MaterialConstants.PROD_CREATE_IN_URL; //String url = MaterialConstants.PROD_CREATE_IN_URL;
String data = AutomaticHttpHelper.sendHttpPostPushCost(url, body); String url = typeService.getAsInUrl();
log.info("立体库获取建立修试入库单路径:{}", url);
String data = automaticHttpHelper.sendHttpPostPushCost(url, body);
log.info("立体库建立修试入库单返回data{}", data);
if (StringUtils.isEmpty(data)) { if (StringUtils.isEmpty(data)) {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败"); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败");
} }
JSONObject object = JSONObject.parseObject(data); JSONObject object = JSONObject.parseObject(data);
String code = object.getString("code"); String code = object.getString("code");
if ("0".equals(code)) { log.info("立体库建立修试入库单返回code{}", code);
if (CollectionUtils.isNotEmpty(repairInputDetails.getMaCodeList())) { if (!"0".equals(code)) {
for (RepairInputDetails inputDetails : repairInputDetails.getMaCodeList()) {
inputDetails.setStatus(RepairInputStatusEnum.TO_UPLOAD.getStatus().toString());
inputDetails.setTaskId(repairInputDetails.getTaskId());
inputDetails.setTypeId(repairInputDetails.getTypeId());
inputDetails.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString());
inputDetails.setUpdateTime(DateUtils.getNowDate());
result += repairInputDetailsMapper.updateRepairStatus(inputDetails);
// 待上架
inputDetails.setStatus(MaMachineStatusEnum.TO_UPLOAD.getStatus().toString());
repairInputDetailsMapper.updateStatus(inputDetails);
}
} else {
repairInputDetails.setStatus(RepairInputStatusEnum.TO_UPLOAD.getStatus().toString());
repairInputDetails.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString());
repairInputDetails.setUpdateTime(DateUtils.getNowDate());
result += repairInputDetailsMapper.updateRepairStatus(repairInputDetails);
}
return AjaxResult.success("立体仓入库单创建成功");
} else {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败"); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "立体仓入库单创建失败");
} }
} }