第一轮bug修复,中继服务,库存

master
anthonyywj2 3 years ago
parent c06cd5fc0a
commit f9dc799455

@ -107,9 +107,13 @@ public class UdiContrastController {
return ResultVOUtils.error(500, "已存在相同的对照关系,无法切换版本");
}
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getUdiByUuid(combineRequest.getKeys().get(0));
udiInfoService.insertUdiInfos(udiInfoEntities);
udiInfoService.deleteByUuid(udiRelevanceEntity.getUuid());
udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid());
for (UdiInfoEntity udiInfoEntity : udiInfoEntities) {
udiInfoEntity.setUuid(udiRelevanceEntity.getUuid());
}
udiInfoService.insertUdiInfos(udiInfoEntities);
// udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid());
udiRelevanceEntity.setUpdateTime(DateUtil.formatDateTime(new Date()));
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
return ResultVOUtils.success("切换成功!");
@ -222,7 +226,7 @@ public class UdiContrastController {
}
public void createUnionContrast(CombineRequest combineRequest, String key) {
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getUdiByUuid(key);
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key);
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setThirdId(combineRequest.getThirdId());
udiRelevanceEntity.setThirdName(combineRequest.getErpName());
@ -236,18 +240,18 @@ public class UdiContrastController {
udiRelevanceEntity.setManufactory(udiInfoEntities.get(0).getYlqxzcrbarmc());
udiRelevanceEntity.setSupName(combineRequest.getSupName());
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
udiInfoService.insertUdiInfos(udiInfoEntities);
insertUdiInfos(udiInfoEntities);
}
public void createOnlyUuid(CombineRequest combineRequest, String key) {
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getUdiByUuid(key);
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key);
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime());
udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid());
udiRelevanceEntity.setManufactory(udiInfoEntities.get(0).getYlqxzcrbarmc());
udiRelevanceEntity.setSupName(combineRequest.getSupName());
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
udiInfoService.insertUdiInfos(udiInfoEntities);
insertUdiInfos(udiInfoEntities);
}
public void createOnlyMainId(CombineRequest combineRequest, String mainId) {
@ -280,12 +284,12 @@ public class UdiContrastController {
}
public void updateDi(UdiRelevanceEntity udiRelevanceEntity, String key) {
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getUdiByUuid(key);
List<UdiInfoEntity> udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key);
udiInfoService.deleteByUuid(udiRelevanceEntity.getUuid());
udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid());
udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime());
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity);
udiInfoService.insertUdiInfos(udiInfoEntities);
insertUdiInfos(udiInfoEntities);
}
@ -333,6 +337,14 @@ public class UdiContrastController {
return udiRelevanceEntity;
}
public void insertUdiInfos(List<UdiInfoEntity> udiInfoEntities) {
if (CollUtil.isNotEmpty(udiInfoEntities)) {
UdiInfoEntity udiInfoEntity = udiInfoService.findByUuid(udiInfoEntities.get(0).getUuid());
if (udiInfoEntity == null) {
udiInfoService.insertUdiInfos(udiInfoEntities);
}
}
}
}

@ -1,5 +1,6 @@
package com.glxp.api.admin.controller.inout;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.constant.ConstantStatus;
@ -166,13 +167,19 @@ public class OrderDetailController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String billType = null;
if(StrUtil.isNotEmpty(filterErpOrderRequest.getBillAction())){
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(filterErpOrderRequest.getBillAction());
billType = bussinessTypeEntity.getLocalAction();
}else {
billType = filterErpOrderRequest.getLocalAction();
}
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(filterErpOrderRequest.getBillAction());
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
stockOrderFilterRequest.setBillNo(filterErpOrderRequest.getBillNo());
stockOrderFilterRequest.setStartTime(filterErpOrderRequest.getStartDate());
stockOrderFilterRequest.setEndTime(filterErpOrderRequest.getEndDate());
stockOrderFilterRequest.setBillType(bussinessTypeEntity.getLocalAction());
stockOrderFilterRequest.setBillType(billType);
stockOrderFilterRequest.setPage(filterErpOrderRequest.getPage());
stockOrderFilterRequest.setStatus(ConstantStatus.SORDER_CHECK);
stockOrderFilterRequest.setLimit(filterErpOrderRequest.getLimit());

@ -348,6 +348,15 @@ public class WareHouseController {
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
if(StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length()>20){
return ResultVOUtils.error(500, "无效条码!序列号超出最大范围");
}
if(StrUtil.isNotEmpty(udiEntity.getBatchNo()) && udiEntity.getBatchNo().length()>20){
return ResultVOUtils.error(500, "无效条码!批次号超出最大范围");
}
//批次号校验
if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) {
return ResultVOUtils.error(500, "批次号不能为空!");

@ -223,9 +223,15 @@ public class CheckOrderUtils {
public String checkId(ErpOrderEntity vailOrderEntity, UdiRelevanceResponse udiRelevanceResponse, BussinessTypeEntity bussinessTypeEntity) {
if (StrUtil.isNotEmpty(vailOrderEntity.getGoodsid()) && udiRelevanceResponse != null) {
if (vailOrderEntity.getBindRlFk() != null) {
if (vailOrderEntity.getBindRlFk().equals(udiRelevanceResponse.getId() + ""))
return null;
if (vailOrderEntity.getBindRlFk() != null || vailOrderEntity.getRelIdFk() != null) {
if (StrUtil.isNotEmpty(vailOrderEntity.getBindRlFk())) {
if (vailOrderEntity.getBindRlFk().equals(udiRelevanceResponse.getId() + ""))
return null;
} else if (StrUtil.isNotEmpty(vailOrderEntity.getRelIdFk())) {
if (vailOrderEntity.getRelIdFk().equals(udiRelevanceResponse.getId() + ""))
return null;
}
} else { //如果未绑定关联ID则对比产品ID
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeService.finByMainAction(bussinessTypeEntity.getAction());

@ -1,9 +1,11 @@
package com.glxp.api.admin.httpclient;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.admin.entity.basic.ProductInfoEntity;
import com.glxp.api.admin.entity.basic.UdiInfoEntity;
import com.glxp.api.admin.req.receipt.ProductInfoFilterRequest;
import com.glxp.api.admin.service.basic.ProductInfoService;
import com.glxp.api.admin.service.basic.UdiInfoService;
import com.glxp.api.admin.util.UuidUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -21,7 +23,8 @@ import java.util.stream.Collectors;
public class UdiDlHttpClient {
@Resource
ProductInfoService productInfoService;
@Resource
UdiInfoService udiInfoService;
public List<UdiInfoEntity> getUdiByUuid(String uuid) {
ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest();
@ -42,6 +45,19 @@ public class UdiDlHttpClient {
return udiInfoEntities;
}
public List<UdiInfoEntity> getOrUpdateByUuid(String uuid) {
List<UdiInfoEntity> udiInfoEntities = getUdiByUuid(uuid);
if (CollUtil.isNotEmpty(udiInfoEntities)) {
UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(udiInfoEntities.get(0).getNameCode());
if (udiInfoEntity != null) {
List<UdiInfoEntity> exitUdis = udiInfoService.findByUuids(udiInfoEntity.getUuid());
return exitUdis;
}
}
return udiInfoEntities;
}
public List<UdiInfoEntity> getUdiByDi(String key) {
ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest();
productInfoFilterRequest.setPage(1);

@ -93,7 +93,7 @@ public class UdiInfoImportDetailServiceImpl implements UdiInfoImportDetailServic
} catch (Exception e) {
}
}
batchSession.close();
// udiInfoDao.importUdiInfo(udiRelevanceExportJsonResponse.getUdiInfoEntities());
}
@ -110,6 +110,7 @@ public class UdiInfoImportDetailServiceImpl implements UdiInfoImportDetailServic
batchSession.commit();
} catch (Exception e) {
}
batchSession.close();
// udiRelevanceDao.importUdiRelevance(udiRelevanceExportJsonResponse.getUdiRelevanceEntities());
}
@ -126,7 +127,7 @@ public class UdiInfoImportDetailServiceImpl implements UdiInfoImportDetailServic
batchSession.commit();
} catch (Exception e) {
}
batchSession.close();
// thrProductsDao.importThrProductss(udiRelevanceExportJsonResponse.getThrProductsEntities());
}
@ -143,6 +144,7 @@ public class UdiInfoImportDetailServiceImpl implements UdiInfoImportDetailServic
batchSession.commit();
} catch (Exception e) {
}
batchSession.close();
}
}

@ -117,6 +117,7 @@ public class ThrDataService {
erpOrderResponse.setPackSpec(thrOrderDetailEntity.getSpec());
erpOrderResponse.setGoodsunit(thrOrderDetailEntity.getSpec());
erpOrderResponse.setRelIdFk(thrOrderDetailEntity.getProductId());
erpOrderResponse.setBindRlFk(thrOrderDetailEntity.getProductId());
erpOrderResponse.setOrderFromType(ConstantStatus.SORDER_FROM_LOCAL);
erpOrderEntities.add(erpOrderResponse);
}

@ -109,6 +109,7 @@ public class BasicCorpImportService {
log.error("导入第三方往来单位数据失败", e);
}
}
batchSession.close();
}
}
}

@ -265,6 +265,7 @@ public class DlBasicService {
}
}
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
batchSession.close();
}
}
}
@ -325,6 +326,7 @@ public class DlBasicService {
} catch (Exception e) {
}
}
batchSession.close();
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
}
}
@ -385,6 +387,7 @@ public class DlBasicService {
} catch (Exception e) {
}
}
batchSession.close();
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
}
}
@ -450,6 +453,7 @@ public class DlBasicService {
}
batchSession.commit();
}
batchSession.close();
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
}
}

@ -168,11 +168,7 @@ public class InvProductsTrService {
//普通出库
if (ConstantType.TYPE_OUT.equals(bussinessTypeEntity.getMainAction()) && !bussinessTypeEntity.isAdvanceType()) {
//补采购入库或寄售转入单
// List<WarehouseEntity> datas = addOutOrder(orderEntity, mInvProductDetailEntities);//1.先计算现有库存,
// List<WarehouseEntity> temps = filterMapCodes(datas);
addUseOutOrder(orderEntity, mInvProductDetailEntities, bussinessChangeTypeEntitys);
} else if (ConstantType.TYPE_PUT.equals(bussinessTypeEntity.getMainAction()) && !bussinessTypeEntity.isAdvanceType())
//普通入库补单
{
@ -224,9 +220,32 @@ public class InvProductsTrService {
//缺量补单时是否全量补单
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("ullage_supplement_all");
if (systemParamConfigEntity != null && systemParamConfigEntity.getParamValue().equals("1")) {
for (WarehouseEntity warehouseEntity : warehouseEntities) {
inList.add(warehouseEntity);
WarehouseEntity warehouseEntity = warehouseEntities.get(0);
InvWarehouseEntity locWarehouseEntity = invWarehouseService.selectByCode(warehouseEntity.getLocStorageCode());
if (locWarehouseEntity.getLevel() == 1 && isAdavnce(warehouseEntity)) {//补寄售转入
for (WarehouseEntity tempEntity : warehouseEntities) {
preiInList.add(tempEntity);
}
} else {
if (locWarehouseEntity.getLevel() > 1) {
norChangeTypeEntity = innorChangeTypeEntity;
InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(locWarehouseEntity.getPcode());
for (WarehouseEntity tempEntity : warehouseEntities) {
tempEntity.setFromCorp(pInWarehouseEntity.getName());
tempEntity.setFromCorpId(pInWarehouseEntity.getCode());
inList.add(tempEntity);
}
} else {
norChangeTypeEntity = outChangeTypeEntity;
BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByErpId(warehouseEntity.getSupId());
for (WarehouseEntity tempEntity : warehouseEntities) {
tempEntity.setFromCorpId(warehouseEntity.getSupId());
tempEntity.setFromCorp(basicUnitMaintainEntity.getName());
inList.add(tempEntity);
}
}
}
} else {
for (WarehouseEntity warehouseEntity : warehouseEntities) {
/**
@ -409,16 +428,7 @@ public class InvProductsTrService {
for (WarehouseEntity warehouseEntity : warehouseEntities) {
int actCount = getActCount(warehouseEntity);
int count = actCount * warehouseEntity.getCount();
// String code = warehouseEntity.getCode();
UdiInfoEntity udiInfoEntity = getMinDi(warehouseEntity);
// if (udiInfoEntity.getDiType() == ConstantStatus.DITYPE_PACK || udiInfoEntity.getDiType() == ConstantStatus.DITYPE_SYDY
// || (udiInfoEntity.getSjcpbm() != null && !"".equals(udiInfoEntity.getSjcpbm()))) {
// warehouseEntity.setNameCode(udiInfoEntity.getNameCode());
// code = FilterUdiUtils.transGlxpNoSerStr(warehouseEntity);
// count = actCount * warehouseEntity.getCount();
// } else {
// count = warehouseEntity.getCount();
// }
//获取寄售出入库结余数量
int invCount = getPreCountByOrder(null, udiInfoEntity.getRelId(), warehouseEntity.getBatchNo(), warehouseEntity.getSupId(), warehouseEntity.getLocStorageCode());
if (invCount > 0) {//仓库已存在该产品

@ -372,19 +372,18 @@ public class IoTransInoutService {
orderService.updateRemark(orderEntity.getId(), "udi码" + warehouseEntity.getCode() + "当前供应商不存在此配送产品");
return;
} else {
if (datas.size() == 1) {
warehouseEntity.setRelId(datas.get(0).getRlId() + "");
} else {
orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL);
orderService.updateRemark(orderEntity.getId(), "di码" + warehouseEntity.getNameCode() + "DI绑定多个产品ID,请指定对应产品!");
return;
if(StrUtil.isEmpty(warehouseEntity.getRelId())){
if (datas.size() == 1) {
warehouseEntity.setRelId(datas.get(0).getRlId() + "");
} else {
orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL);
orderService.updateRemark(orderEntity.getId(), "di码" + warehouseEntity.getNameCode() + "DI绑定多个产品ID,请指定对应产品!");
return;
}
}
}
}
//产品是否已维护已关联
if (StrUtil.isEmpty(warehouseEntity.getRelId())) {
orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL);

@ -82,6 +82,8 @@ public class FilterUdiUtils {
batchNo = data.substring(34, data.length());
}
}else if (data.length() >= 34 && data.substring(32, 34).equals("21")) {
serialNo = data.substring(34, data.length());
}
} else if (data.length() >= 26 && data.substring(24, 26).equals("10")) {
if (data.contains("\u001D")) {
@ -117,6 +119,8 @@ public class FilterUdiUtils {
batchNo = data.substring(34, data.length());
}
} else if (data.length() >= 34 && data.substring(32, 34).equals("21")) {
serialNo = data.substring(34, data.length());
}
} else if (data.length() >= 26 && data.substring(24, 26).equals("10")) {
if (data.contains("\u001D")) {
@ -157,16 +161,16 @@ public class FilterUdiUtils {
String produceDate = "";
String expireDate = "";
String serialNo = null;
String udi = data;
String nameCode = "";
String[] spilts = data.split("[.]");
if (spilts != null && spilts.length >= 5) {
for (int i = 0; i < 5; i++) {
udi = udi + "." + spilts[i];
nameCode = nameCode + "." + spilts[i];
}
udi = udi.substring(1);
nameCode = nameCode.substring(1);
for (int i = 0; i < spilts.length; i++) {
String tempStr = spilts[i];
if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("P")) {
if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("M")) {
produceDate = tempStr.substring(1);
} else if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("L")) {
batchNo = tempStr.substring(1);
@ -182,12 +186,13 @@ public class FilterUdiUtils {
udiEntity.setBatchNo(batchNo);
udiEntity.setExpireDate(expireDate);
udiEntity.setProduceDate(produceDate);
udiEntity.setUdi(udi);
udiEntity.setUdi(nameCode);
udiEntity.setSerialNo(serialNo);
return udiEntity;
}
public static UdiEntity getGLXPUdi(String data) {
String batchNo = "";
String produceDate = "";

@ -3,8 +3,8 @@ server.port=9991
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udiwms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
#spring.datasource.password=Glxp@6066
spring.datasource.password=123456
#spring.datasource.password=89083fb2fc145533
server.servlet.context-path=
#logging.level.com.glxp.api.admin.dao=debug
logging.level.com.glxp.api.admin.dao.auth=debug
@ -20,8 +20,8 @@ logging.path=output/logs
# 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称
#logging.file=D:/udi.log
#file_path=D:/1s/udiwms/udiwmsfile/
file_path=/home/glxp/udiwms
file_path=D:/1s/udiwms/udiwmsfile/
#file_path=/home/glxp/udiwms
#UDI数据下载
UDI_KEY=6b137c66-6286-46c6-8efa-c2f5dd9237df
UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server_test

@ -59,6 +59,9 @@
<if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null">
AND ylqxzcrbarmc LIKE concat(#{ylqxzcrbarmc},'%')
</if>
<if test="ggxh != '' and ggxh != null">
AND ggxh LIKE concat('%',#{ggxh},'%')
</if>
<if test="cpmctymc != '' and cpmctymc != null">
AND cpmctymc LIKE concat(#{cpmctymc},'%')
</if>

@ -108,13 +108,14 @@
basic_products.sydycpbs,basic_products.uuid,basic_products.sjcpbm,basic_products.versionNumber,
basic_products.diType,basic_products.productType,basic_products.scbssfbhph,
basic_products.scbssfbhxlh,
basic_products.scbssfbhscrq,
basic_products.scbssfbhscrq,basic_corp.name companyName,
basic_products.scbssfbhsxrq,basic_products.cpms,basic_udirel.supName,company_product_relevance.unitFk,basic_products.originUuid
FROM basic_udirel
inner JOIN basic_products
ON basic_products.uuid = basic_udirel.uuid
left join company_product_relevance
on basic_udirel.id = company_product_relevance.udiRlIdFk
left JOIN basic_corp on basic_corp.erpId = company_product_relevance.customerId
<where>
<if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null">
AND ylqxzcrbarmc LIKE concat('%',#{ylqxzcrbarmc},'%')

@ -25,6 +25,9 @@
<if test="corpName != '' and corpName != null">
AND corpName like concat('%',#{corpName},'%')
</if>
<if test="lastUpdateTime!=null and lastUpdateTime!=''">
<![CDATA[ and DATE_FORMAT(updateTime, '%Y-%m-%d %H:%i:%S')>= DATE_FORMAT(#{lastUpdateTime}, '%Y-%m-%d %H:%i:%S') ]]>
</if>
<if test="startDate!=null and startDate!=''">
<![CDATA[ and DATE_FORMAT(billdate, '%Y-%m-%d')>= DATE_FORMAT(#{startDate}, '%Y-%m-%d') ]]>
</if>

Loading…
Cancel
Save