1.修复建垛规则生成修改校验错误问题

2.分离网页端和app端建垛接口
3.添加手持终端部分接口缺失的字段
4.修复复制单据失败问题
master
x_z 3 years ago
parent 82104ad475
commit f443525d18

@ -68,4 +68,20 @@ public class ConstantStatus {
*/
public static final int STACK_RULES_ENABLE = 1;
//建垛数据来源
/**
* PDA
*/
public static final int STACK_ORDER_FROM_TYPE_PDA = 0;
/**
*
*/
public static final int STACK_ORDER_FROM_TYPE_WEB = 0;
/**
* excel
*/
public static final int STACK_ORDER_FROM_TYPE_EXCEL = 0;
}

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.glxp.udi.admin.common.enums.ResultEnum;
import com.glxp.udi.admin.common.res.BaseResponse;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import com.glxp.udi.admin.constant.ConstantStatus;
import com.glxp.udi.admin.entity.basic.StackRulesEntity;
import com.glxp.udi.admin.req.basic.FilterStackRulesRequest;
import com.glxp.udi.admin.req.inout.DeleteRequest;
@ -58,12 +57,10 @@ public class StackRulesController {
if (exists) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "规则重复");
}
if (stackRulesEntity.getStatus().equals(ConstantStatus.STACK_RULES_ENABLE)) {
//判断当前用户是否已存在启用的规则
Long count = stackRulesService.countEnableRules(stackRulesEntity.getCustomerId());
if (count > 0) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "已有启用规则");
}
//校验规则启用数量
boolean verifyResult = stackRulesService.verifyStatus(stackRulesEntity);
if (!verifyResult) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "至少启用一个规则");
}
stackRulesService.addStackRules(stackRulesEntity);
return ResultVOUtils.success();
@ -85,12 +82,10 @@ public class StackRulesController {
if (exists) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "规则重复");
}
if (stackRulesEntity.getStatus().equals(ConstantStatus.STACK_RULES_ENABLE)) {
//判断当前用户是否已存在启用的规则
Long count = stackRulesService.countEnableRules(stackRulesEntity.getCustomerId());
if (count > 0) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "已有启用规则");
}
//校验规则启用数量
boolean verifyResult = stackRulesService.verifyStatus(stackRulesEntity);
if (!verifyResult) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "至少启用一个规则");
}
stackRulesService.updateStackRules(stackRulesEntity);
return ResultVOUtils.success();
@ -107,6 +102,10 @@ public class StackRulesController {
if (null == deleteRequest || StrUtil.isBlank(deleteRequest.getId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
Long count = stackRulesService.countEnableRules(deleteRequest.getCustomerId());
if (count == 1) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "至少保留一条规则");
}
stackRulesService.delete(deleteRequest.getId());
return ResultVOUtils.success();
}

@ -2,16 +2,18 @@ package com.glxp.udi.admin.controller.inout;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.glxp.udi.admin.annotation.AuthRuleAnnotation;
import com.glxp.udi.admin.common.enums.ResultEnum;
import com.glxp.udi.admin.common.res.BaseResponse;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import com.glxp.udi.admin.constant.ConstantType;
import com.glxp.udi.admin.entity.auth.AuthAdmin;
import com.glxp.udi.admin.entity.inout.InvProductDetailEntity;
import com.glxp.udi.admin.entity.inout.InvProductEntity;
import com.glxp.udi.admin.entity.inout.UdiInfoEntity;
import com.glxp.udi.admin.service.inout.InvProductDetailService;
import com.glxp.udi.admin.service.inout.InvProductService;
import com.glxp.udi.admin.entity.udid.UdiEntity;
import com.glxp.udi.admin.req.inout.DeleteRequest;
import com.glxp.udi.admin.req.inout.FilterInvProductDetailRequest;
import com.glxp.udi.admin.req.inout.FilterUdiInfoRequest;
@ -20,12 +22,12 @@ import com.glxp.udi.admin.res.PageSimpleResponse;
import com.glxp.udi.admin.res.inventory.InvProductDetailResponse;
import com.glxp.udi.admin.res.inventory.InvProductResponse;
import com.glxp.udi.admin.service.auth.CustomerService;
import com.glxp.udi.admin.service.inout.InvProductDetailService;
import com.glxp.udi.admin.service.inout.InvProductService;
import com.glxp.udi.admin.service.inout.UdiInfoService;
import com.glxp.udi.admin.service.inout.WarehouseUserService;
import com.glxp.udi.admin.service.inventory.InvWarehouseService;
import com.glxp.udi.admin.util.FilterUdiUtils;
import com.glxp.udi.admin.common.enums.ResultEnum;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
@ -103,7 +105,11 @@ public class InvProductsController {
|| StringUtils.isNotBlank(filterInvProductRequest.getUdiCode())) {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
if (StringUtils.isNotBlank(filterInvProductRequest.getUdiCode())) {
UdiEntity udi = FilterUdiUtils.getUdi(filterInvProductRequest.getUdiCode());
filterUdiInfoRequest.setNameCode(FilterUdiUtils.getDiStr(filterInvProductRequest.getUdiCode()));
if (StrUtil.isNotBlank(udi.getBatchNo())) {
filterInvProductRequest.setBatchNo(udi.getBatchNo());
}
}
String customerId = String.valueOf(customerService.getCustomerId());
filterUdiInfoRequest.setCustomerId(customerId);
@ -137,6 +143,7 @@ public class InvProductsController {
response.setCpmctymc(udiInfoEntity.getCpmctymc());
response.setInvStorageCode(invProductEntity.getLocStorageCode());
response.setInvStorageName(invWarehouseService.findNameByCode(invProductEntity.getLocStorageCode()));
response.setProductionDate(invProductEntity.getProductDate());
invProductResponses.add(response);
}

@ -502,7 +502,8 @@ public class OrderController {
originOrder.setActDate(cn.hutool.core.date.DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN));
originOrder.setFromCorp(addOrderChangeRequest.getFromCorp());
originOrder.setFromCorpId(addOrderChangeRequest.getFromCorpId());
originOrder.setCorpOrderId(CustomUtil.getId() + "x");
originOrder.setCorpOrderId(oldOrderId);
originOrder.setFromType("复制单据");
originOrder.setMainAction(addOrderChangeRequest.getMainAction());
originOrder.setAction(addOrderChangeRequest.getAction());
originOrder.setExportStatus("0"); //设置导出状态为未导出
@ -530,7 +531,7 @@ public class OrderController {
if ((StrUtil.isNotBlank(product.getBatchNo()) && StrUtil.isNotBlank(code.getBatchNo()) && product.getBatchNo().equals(code.getBatchNo()))
|| (StrUtil.isBlank(product.getBatchNo()) && StrUtil.isBlank(code.getBatchNo()))) {
WarehousetempEntity supplementCode = new WarehousetempEntity();
BeanUtil.copyProperties(code, supplementCode);
BeanUtil.copyProperties(code, supplementCode,"id");
supplementCode.setFromCorpId(originOrder.getFromCorpId());
supplementCode.setFromCorp(originOrder.getFromCorp());
supplementCode.setLocStorageCode(originOrder.getLocStorageCode());
@ -545,7 +546,6 @@ public class OrderController {
}
);
originOrder.setUpdateTime(new Date());
originOrder.setOrderId(null);
orderService.insertOrder(originOrder);
warehouseTempService.insertTempWarehouses(supplementCodes);
orderService.updateReplicateNo(oldOrderId, replicateNo);

@ -64,9 +64,14 @@ public class UdiRelevanceController {
filterUdiInfoRequest.setDisable(false);
IPage<UdiInfoEntity> page = udiInfoService.filterUdiInfo(filterUdiInfoRequest);
List<UdiRelevanceResponse> udiRelevanceResponses = page.getRecords().stream().map(e -> {
UdiRelevanceResponse authAdminRoleResponse = new UdiRelevanceResponse();
BeanUtils.copyProperties(e, authAdminRoleResponse);
return authAdminRoleResponse;
UdiRelevanceResponse udiRelevanceResponse = new UdiRelevanceResponse();
BeanUtils.copyProperties(e, udiRelevanceResponse);
//转换部分字段
udiRelevanceResponse.setAllowNoBatch(udiRelevanceResponse.getScbssfbhph().equals("是"));
udiRelevanceResponse.setAllowNoProduct(udiRelevanceResponse.getScbssfbhscrq().equals("是"));
udiRelevanceResponse.setAllowNoExpire(udiRelevanceResponse.getScbssfbhsxrq().equals("是"));
return udiRelevanceResponse;
}).collect(Collectors.toList());
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();

@ -97,6 +97,7 @@ public class UnitMaintainController {
IPage<UnitMaintainEntity> page = unitMaintainService.filterList(unitMaintainFilterRequest);
for (UnitMaintainEntity unitMaintainEntity : page.getRecords()) {
unitMaintainEntity.setErpId(unitMaintainEntity.getUnitId());
unitMaintainEntity.setSpell(unitMaintainEntity.getPinyinCode());
}
PageSimpleResponse<UnitMaintainEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(page.getTotal());

@ -98,7 +98,46 @@ public class StackOrderController {
return ResultVOUtils.success();
}
/**
*
*
* @param stackUploadRequest
* @param bindingResult
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udims/stack/order/uploadStackOrder")
public BaseResponse uploadStackOrder(@RequestBody StackUploadRequest stackUploadRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
StackOrder stackOrderEntity = stackUploadRequest.getStackOrderEntity();
if (stackOrderEntity == null) {
return ResultVOUtils.error(500, "上传数据不能为空!");
}
if (stackOrderService.isExit(stackOrderEntity.getOrderId())) {
return ResultVOUtils.error(500, "垛号已存在,请勿重复提交!");
}
if (CollUtil.isEmpty(stackUploadRequest.getStackCodeEntityList())) {
return ResultVOUtils.error(500, "提交失败,该垛号未关联条码!");
}
stackOrderEntity.setCustomerId(customerService.getCustomerId() + "");
stackOrderEntity.setFromType(ConstantStatus.STACK_ORDER_FROM_TYPE_WEB);
StackOrder stackOrder = stackOrderService.insertOrder(stackOrderEntity);
//绑定垛号
stackUploadRequest.getStackCodeEntityList().forEach(stackCode -> stackCode.setOrderIdFk(String.valueOf(stackOrder.getId())));
stackCodeService.batchInsert(stackUploadRequest.getStackCodeEntityList());
return ResultVOUtils.success(stackOrder.getId());
}
/**
*
*
* @param stackUploadRequest
* @param bindingResult
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/udims/stack/order/upload")
public BaseResponse uploadStack(@RequestBody StackUploadRequest stackUploadRequest, BindingResult bindingResult) {
@ -117,12 +156,12 @@ public class StackOrderController {
return ResultVOUtils.error(500, "提交失败,该垛号未关联条码!");
}
stackOrderEntity.setCustomerId(customerService.getCustomerId() + "");
String orderId = stackOrderService.insertOrder(stackOrderEntity);
stackOrderEntity.setFromType(ConstantStatus.STACK_ORDER_FROM_TYPE_PDA);
StackOrder stackOrder = stackOrderService.insertOrder(stackOrderEntity);
//绑定垛号
stackUploadRequest.getStackCodeEntityList().forEach(stackCode -> stackCode.setOrderIdFk(orderId));
stackUploadRequest.getStackCodeEntityList().forEach(stackCode -> stackCode.setOrderIdFk(String.valueOf(stackOrder.getId())));
stackCodeService.batchInsert(stackUploadRequest.getStackCodeEntityList());
return ResultVOUtils.success(orderId);
return ResultVOUtils.success(stackOrderEntity);
}
/**

@ -81,4 +81,9 @@ public class StackOrder {
*/
private String nameCode;
/**
* 0 1 2
*/
private Integer fromType;
}

@ -63,6 +63,12 @@ public class UdiRelevanceResponse {
private String cpms;
private String supName;
//是否包含批号
private boolean allowNoBatch;
//是否包含失效日期
private boolean allowNoExpire;
//是否包含生产日期
private boolean allowNoProduct;
public int getBhzxxsbzsl() {
if (bhzxxsbzsl == null || bhzxxsbzsl == 0) {

@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.udi.admin.constant.ConstantStatus;
import com.glxp.udi.admin.dao.basic.StackRulesDao;
import com.glxp.udi.admin.entity.basic.StackRulesEntity;
import com.glxp.udi.admin.req.basic.FilterStackRulesRequest;
@ -143,4 +144,33 @@ public class StackRulesService {
.eq("customerId", customerId);
return stackRulesDao.selectCount(wrapper);
}
/**
*
*
* @param stackRules
* @return true / false /
*/
public boolean verifyStatus(StackRulesEntity stackRules) {
QueryWrapper<StackRulesEntity> wrapper = new QueryWrapper<>();
wrapper.eq("status", 1)
.eq("customerId", stackRules.getCustomerId());
List<StackRulesEntity> list = stackRulesDao.selectList(wrapper);
if (stackRules.getStatus().equals(ConstantStatus.STACK_RULES_ENABLE)) {
//当前规则为启用状态,判断此规则是否为当前的规则,且启用规则数量 <= 1
if (list.size() == 0) {
return true;
} else if (list.size() == 1) {
for (StackRulesEntity stackRulesEntity : list) {
if (stackRulesEntity.getId().equals(stackRules.getId())) {
return true;
}
}
}
return false;
} else {
//当前规则为禁用状态,判断当前是否至少有一个启用的规则
return list.size() > 1;
}
}
}

@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.udi.admin.constant.ConstantStatus;
import com.glxp.udi.admin.dao.product.StackCodeDao;
import com.glxp.udi.admin.dao.product.StackOrderDao;
import com.glxp.udi.admin.entity.product.StackCode;
@ -98,6 +99,7 @@ public class StackCodeService {
stackOrder.setCreateTime(new Date());
stackOrder.setExportStatus(0);
stackOrder.setCustomerId(addStackCodeRequest.getCustomerId());
stackOrder.setFromType(ConstantStatus.STACK_ORDER_FROM_TYPE_WEB);
stackOrderDao.insert(stackOrder);
stackCode.setOrderIdFk(String.valueOf(stackOrder.getId()));
} else {

@ -10,6 +10,7 @@ import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.udi.admin.constant.ConstantStatus;
import com.glxp.udi.admin.dao.product.StackCodeDao;
import com.glxp.udi.admin.dao.product.StackOrderDao;
import com.glxp.udi.admin.entity.product.StackCode;
@ -73,14 +74,14 @@ public class StackOrderService {
return stackOrderDao.exists(new QueryWrapper<StackOrder>().eq("orderId", orderId));
}
public String insertOrder(StackOrder stackOrderEntity) {
public StackOrder insertOrder(StackOrder stackOrderEntity) {
String stackId = idUtil.getStackId(stackOrderEntity.getCustomerId());
stackOrderEntity.setOrderId(stackId);
if (null == stackOrderEntity.getCreateTime()) {
stackOrderEntity.setCreateTime(new Date());
}
stackOrderDao.insert(stackOrderEntity);
return String.valueOf(stackOrderEntity.getId());
return stackOrderEntity;
}
public void deleteById(Integer id) {
@ -180,6 +181,7 @@ public class StackOrderService {
stackOrder.setCreateTime(new Date());
stackOrder.setExportStatus(0);
stackOrder.setCustomerId(customerId);
stackOrder.setFromType(ConstantStatus.STACK_ORDER_FROM_TYPE_EXCEL);
//插入垛数据
stackOrderDao.insert(stackOrder);
List<StackCode> data = stacks.get(serialNum);

Loading…
Cancel
Save