插入库存无批次号问题,手持终端扫码验收

master
anthonywj 2 years ago
parent a91cb4e194
commit 9de2e3881c

@ -32,8 +32,6 @@ public class EntrustReceController extends BaseController {
@Resource @Resource
EntrustReceService entrustReceService; EntrustReceService entrustReceService;
@Resource @Resource
CustomerService customerService;
@Resource
private IBasicBussinessTypeService bussinessTypeService; private IBasicBussinessTypeService bussinessTypeService;
@GetMapping("/spms/entrust/rece/filter") @GetMapping("/spms/entrust/rece/filter")

@ -1,10 +1,13 @@
package com.glxp.api.controller.inout; package com.glxp.api.controller.inout;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController; import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.req.inout.FilterCodeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeResponse;
import com.glxp.api.service.inout.IoCodeService; import com.glxp.api.service.inout.IoCodeService;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -51,4 +54,22 @@ public class IoCodeController extends BaseController {
} }
/**
*
*/
@AuthRuleAnnotation("")
@GetMapping("spms/inout/dlcode/findByOrderId")
public BaseResponse downloadCodesByOrderId(String orderId) {
List<IoCodeEntity> codeEntityList = ioCodeService.findByOrderId(orderId);
PageInfo<IoCodeEntity> pageInfo;
pageInfo = new PageInfo<>(codeEntityList);
PageSimpleResponse<IoCodeEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(codeEntityList);
return ResultVOUtils.success(pageSimpleResponse);
}
} }

@ -9,11 +9,17 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.BaseController; import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.auth.InvBusUserEntity;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.EntrustReceEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.auth.FilterInvBusUserRequest;
import com.glxp.api.req.auth.FilterInvWarehouseRequest;
import com.glxp.api.req.basic.BasicEntrustRecRequest;
import com.glxp.api.req.inout.AddOrderRequest; import com.glxp.api.req.inout.AddOrderRequest;
import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.FilterOrderRequest;
@ -22,6 +28,8 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inout.PdaBusOrderResponse; import com.glxp.api.res.inout.PdaBusOrderResponse;
import com.glxp.api.service.auth.InvBusUserService;
import com.glxp.api.service.basic.EntrustReceService;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -245,7 +253,70 @@ public class IoOrderController extends BaseController {
pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(erpOrderResponses); pageSimpleResponse.setList(erpOrderResponses);
return ResultVOUtils.success(pageSimpleResponse); return ResultVOUtils.success(pageSimpleResponse);
// } }
@Resource
EntrustReceService entrustReceService;
@Resource
InvBusUserService invBusUserService;
//手持终端下载扫码单据进行审核
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/order/download")
public BaseResponse downloadOrder(FilterOrderRequest filterOrderRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
Long userId = null;
if (filterOrderRequest.getWmsUserId() != null) {
userId = filterOrderRequest.getWmsUserId();
} else userId = getUserId();
List<EntrustReceEntity> entrustReceEntities;
List<InvBusUserEntity> warehouseUserEntities = null;
IoOrderEntity stockOrderEntity = orderService.findByBillNo(filterOrderRequest.getBillNo());
if (stockOrderEntity == null) {
return ResultVOUtils.error(500, "单据未找到!");
} else if (stockOrderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) {
//1.校验是否为委托验收人
if (!stockOrderEntity.isEntrustEnd()) {
BasicEntrustRecRequest basicEntrustRecRequest = new BasicEntrustRecRequest();
basicEntrustRecRequest.setAction(stockOrderEntity.getAction());
basicEntrustRecRequest.setEntrustUser(userId);
basicEntrustRecRequest.setCurInv(stockOrderEntity.getInvCode());
entrustReceEntities = entrustReceService.filterEntrustRec(basicEntrustRecRequest);
} else {
return ResultVOUtils.error(500, "单据已委托验收完成!");
}
//2.校验是否为用户所属单据类型
if (StrUtil.isNotEmpty(stockOrderEntity.getDeptCode())) {
FilterInvBusUserRequest filterInvBusUserRequest = new FilterInvBusUserRequest();
filterInvBusUserRequest.setSubInvCode(stockOrderEntity.getInvCode());
filterInvBusUserRequest.setUserId(userId + "");
filterInvBusUserRequest.setScAction(stockOrderEntity.getAction());
warehouseUserEntities = invBusUserService.filterInvBusUser(filterInvBusUserRequest);
}
if (CollUtil.isEmpty(warehouseUserEntities) && CollUtil.isEmpty(entrustReceEntities)) {
return ResultVOUtils.error(500, "权限不足,无法验收!");
}
} else if (stockOrderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) {
return ResultVOUtils.error(500, "单据已审核!");
} else {
return ResultVOUtils.error(500, "非未审核单据!");
}
List<IoOrderResponse> orderEntityList = orderService.filterList(filterOrderRequest);
PageInfo<IoOrderResponse> pageInfo;
pageInfo = new PageInfo<>(orderEntityList);
PageSimpleResponse<IoOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(orderEntityList);
return ResultVOUtils.success(pageSimpleResponse);
} }

@ -1,11 +1,19 @@
package com.glxp.api.controller.inout; package com.glxp.api.controller.inout;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.IoOrderDetailResultService; import com.glxp.api.service.inout.IoOrderDetailResultService;
import com.glxp.api.service.inout.IoOrderService;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -17,9 +25,12 @@ import java.util.List;
*/ */
@RestController @RestController
public class IoOrderDetailResultController { public class IoOrderDetailResultController {
@Resource
IoOrderService orderService;
@Resource @Resource
private IoOrderDetailResultService orderDetailResultService; private IoOrderDetailResultService orderDetailResultService;
@Resource
IBasicBussinessTypeService basicBussinessTypeService;
/** /**
* *
@ -27,6 +38,7 @@ public class IoOrderDetailResultController {
* @param orderDetailResultRequest * @param orderDetailResultRequest
* @return * @return
*/ */
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/resultDetail/filterList") @GetMapping("/udiwms/inout/resultDetail/filterList")
public BaseResponse filterList(FilterOrderDetailResultRequest orderDetailResultRequest) { public BaseResponse filterList(FilterOrderDetailResultRequest orderDetailResultRequest) {
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterList(orderDetailResultRequest); List<IoOrderDetailResultResponse> list = orderDetailResultService.filterList(orderDetailResultRequest);
@ -34,4 +46,31 @@ public class IoOrderDetailResultController {
return ResultVOUtils.page(pageInfo); return ResultVOUtils.page(pageInfo);
} }
/**
* pda
*/
@AuthRuleAnnotation("")
@GetMapping(value = "/warehouse/inout/order/detail")
public BaseResponse orderDetail(FilterOrderDetailResultRequest filterErpOrderRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isEmpty(filterErpOrderRequest.getOrderIdFk())) {
return ResultVOUtils.error(500, "单据号不能为空!");
}
filterErpOrderRequest.setPage(null);
filterErpOrderRequest.setLimit(null);
IoOrderEntity orderEntity = orderService.findByBillNo(filterErpOrderRequest.getOrderIdFk());
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterList(filterErpOrderRequest);
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
if ((bussinessTypeEntity.getOrderVisibleType() == 1 && orderEntity.getStatus() == 4) || filterErpOrderRequest.getShowType() == 1) {
//todo使用关联查
// erpOrderEntities = transferSerList(erpOrderEntities, filterErpOrderRequest.getOrderId());
}
return ResultVOUtils.success(list);
}
} }

@ -2,22 +2,26 @@ package com.glxp.api.controller.inout;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.BaseController; import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.basic.EntrustReceEntity; import com.glxp.api.entity.basic.EntrustReceEntity;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inout.ReviewFinishRequest; import com.glxp.api.req.inout.ReviewFinishRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.AcceptOrderResponse; import com.glxp.api.res.inout.AcceptOrderResponse;
import com.glxp.api.service.inout.IoAddInoutService; import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.*;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.util.RedisUtil; import com.glxp.api.util.RedisUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
@ -29,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale;
//单据验收 //单据验收
@Slf4j @Slf4j
@ -38,7 +43,7 @@ public class IoOrderReviewController extends BaseController {
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Resource @Resource
IoOrderDetailBizService orderDetailBizService; private IoOrderDetailResultService orderDetailResultService;
@Resource @Resource
IoOrderService orderService; IoOrderService orderService;
@Resource @Resource
@ -53,13 +58,15 @@ public class IoOrderReviewController extends BaseController {
} }
AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse();
acceptOrderEntity.setBillNo(billNo); acceptOrderEntity.setBillNo(billNo);
List<IoOrderDetailBizEntity> datas = (List<IoOrderDetailBizEntity>) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); List<IoOrderDetailResultResponse> datas = (List<IoOrderDetailResultResponse>) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo);
if (CollUtil.isNotEmpty(datas)) { if (CollUtil.isNotEmpty(datas)) {
acceptOrderEntity.setOrderDetailEntities(datas); acceptOrderEntity.setOrderDetailEntities(datas);
acceptOrderEntity.setExitAccept(true); acceptOrderEntity.setExitAccept(true);
} else { } else {
List<IoOrderDetailBizEntity> stockOrderDetailEntities = orderDetailBizService.findByOrderId(billNo); FilterOrderDetailResultRequest filterOrderDetailResultRequest = new FilterOrderDetailResultRequest();
acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); filterOrderDetailResultRequest.setOrderIdFk(billNo);
List<IoOrderDetailResultResponse> orderDetailResultResponses = orderDetailResultService.filterList(filterOrderDetailResultRequest);
acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses);
acceptOrderEntity.setExitAccept(false); acceptOrderEntity.setExitAccept(false);
} }
return ResultVOUtils.success(acceptOrderEntity); return ResultVOUtils.success(acceptOrderEntity);
@ -83,6 +90,116 @@ public class IoOrderReviewController extends BaseController {
return updateReview(orderEntity); return updateReview(orderEntity);
} }
@Resource
IoCodeService codeService;
//前端扫码验收
@AuthRuleAnnotation("")
@PostMapping("/udiwms/stock/order/accept/addCode")
public BaseResponse acceptAddCode(@RequestBody AcceptOrderResponse acceptOrderEntity) {
IoOrderEntity stockOrderEntity = orderService.findByBillNo(acceptOrderEntity.getBillNo());
List<IoCodeEntity> codeList;
List<IoCodeEntity> codeEntityList = (List<IoCodeEntity>) redisUtil.get(ConstantStatus.REDIS_BILLNO_CODES + acceptOrderEntity.getBillNo());
if (CollUtil.isEmpty(codeEntityList)) {
codeList = codeService.findByOrderId(stockOrderEntity.getBillNo());
} else {
codeList = codeEntityList;
}
IoCodeEntity codeEntity = isExit(codeList, acceptOrderEntity.getCode());
if (codeEntity == null) {
return ResultVOUtils.error(500, "非此单UDI码");
}
int status = checkCodeExit(codeEntity.getCode(), codeList);
if (status == Constant.CHECK_REPEAT) {
return ResultVOUtils.error(500, "重复扫码!");
} else if (status == Constant.CHECK_NULL) {
return ResultVOUtils.error(500, "非此单UDI码");
}
List<IoOrderDetailResultResponse> orderDetailResultResponses = acceptOrderEntity.getOrderDetailEntities();
if (StrUtil.isNotEmpty(acceptOrderEntity.getCode()) && CollUtil.isNotEmpty(orderDetailResultResponses)) {
boolean isExit = false;
for (IoOrderDetailResultResponse orderDetailResultResponse : orderDetailResultResponses) {
if (orderDetailResultResponse.getBindRlFk().longValue() == codeEntity.getRelId().longValue() &&
StrUtil.trimToEmpty(orderDetailResultResponse.getBatchNo()).equals(StrUtil.trimToEmpty(codeEntity.getBatchNo()))) {
orderDetailResultResponse.setAcceptCount(orderDetailResultResponse.getAcceptCount() + codeEntity.getReCount());
if (orderDetailResultResponse.getAcceptCount() > orderDetailResultResponse.getCount()) {
return ResultVOUtils.error(500, "数量溢出!");
}
isExit = true;
break;
}
}
if (isExit) {
redisUtil.set(ConstantStatus.REDIS_BILLNO + acceptOrderEntity.getBillNo(), orderDetailResultResponses);
redisUtil.set(ConstantStatus.REDIS_BILLNO_CODES + acceptOrderEntity.getBillNo(), codeList);
acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses);
if (vailFinish(orderDetailResultResponses)) {
acceptOrderEntity.setFinishAccept(true);
return ResultVOUtils.success(acceptOrderEntity);
}
return ResultVOUtils.success(acceptOrderEntity);
}
}
return ResultVOUtils.error(500, "非此单条码!");
}
public int checkCodeExit(String code, List<IoCodeEntity> codesList) {
if (StrUtil.isNotEmpty(code)) {
code = code.replace("\r\n", "");
}
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
for (IoCodeEntity checkOrderCodesBean : codesList) {
if (checkOrderCodesBean.getCode().toUpperCase(Locale.ROOT).equals(code.toUpperCase(Locale.ROOT))) {
if (checkOrderCodesBean.getStatus() == Constant.DB_CHECK_ED
&& checkOrderCodesBean.getCount() == checkOrderCodesBean.getScanCount()) {
return Constant.CHECK_REPEAT;
}
int curCount = checkOrderCodesBean.getScanCount() + checkOrderCodesBean.getCount();
if (curCount == checkOrderCodesBean.getCount()) {
checkOrderCodesBean.setStatus(Constant.DB_CHECK_ED);
}
checkOrderCodesBean.setScanCount(curCount);
return Constant.CHECK_EXIT;
}
}
return Constant.CHECK_NULL;
}
public IoCodeEntity isExit(List<IoCodeEntity> codeList, String code) {
if (CollUtil.isNotEmpty(codeList)) {
for (IoCodeEntity codeEntity : codeList) {
if (codeEntity.getCode().equals(code)) {
return codeEntity;
}
}
}
return null;
}
public boolean vailFinish(List<IoOrderDetailResultResponse> orderDetailResultResponses) {
if (CollUtil.isNotEmpty(orderDetailResultResponses)) {
for (IoOrderDetailResultResponse stockOrderDetailEntity : orderDetailResultResponses) {
if (stockOrderDetailEntity.getCount() != stockOrderDetailEntity.getAcceptCount()) {
return false;
}
}
return true;
}
return false;
}
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("/udiwms/stock/order/acceptClear") @PostMapping("/udiwms/stock/order/acceptClear")
@ -90,8 +207,10 @@ public class IoOrderReviewController extends BaseController {
String billNo = acceptOrderEntity.getBillNo(); String billNo = acceptOrderEntity.getBillNo();
redisUtil.del(ConstantStatus.REDIS_BILLNO + billNo); redisUtil.del(ConstantStatus.REDIS_BILLNO + billNo);
redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + billNo); redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + billNo);
List<IoOrderDetailBizEntity> stockOrderDetailEntities = orderDetailBizService.findByOrderId(billNo); FilterOrderDetailResultRequest filterOrderDetailResultRequest = new FilterOrderDetailResultRequest();
acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); filterOrderDetailResultRequest.setOrderIdFk(billNo);
List<IoOrderDetailResultResponse> orderDetailResultResponses = orderDetailResultService.filterList(filterOrderDetailResultRequest);
acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses);
return ResultVOUtils.success(acceptOrderEntity); return ResultVOUtils.success(acceptOrderEntity);
} }
@ -110,4 +229,6 @@ public class IoOrderReviewController extends BaseController {
return ResultVOUtils.success("更新成功"); return ResultVOUtils.success("更新成功");
} }
} }

@ -1,6 +1,8 @@
package com.glxp.api.dao.auth; package com.glxp.api.dao.auth;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.auth.InvBusUserEntity; import com.glxp.api.entity.auth.InvBusUserEntity;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity; import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity;
import com.glxp.api.req.auth.FilterInvBusUserRequest; import com.glxp.api.req.auth.FilterInvBusUserRequest;
import com.glxp.api.res.auth.InvBusUserResponse; import com.glxp.api.res.auth.InvBusUserResponse;
@ -10,7 +12,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@Mapper @Mapper
public interface InvBusUserDao { public interface InvBusUserDao extends BaseMapperPlus<InvBusUserDao, InvBusUserEntity, InvBusUserEntity> {
List<InvBusUserEntity> filterInvBusUser(FilterInvBusUserRequest filterInvBusUserRequest); List<InvBusUserEntity> filterInvBusUser(FilterInvBusUserRequest filterInvBusUserRequest);

@ -136,6 +136,8 @@ public class IoCodeEntity {
private Date createTime; private Date createTime;
@TableField(exist = false) @TableField(exist = false)
private Integer status; //条码校验状态 private int status; //条码校验状态
@TableField(exist = false)
private int scanCount;
} }

@ -185,6 +185,9 @@ public class IoOrderEntity {
@TableField(value = "preInBillNo") @TableField(value = "preInBillNo")
private String preInBillNo; private String preInBillNo;
@TableField(value = "entrustEnd")
private boolean entrustEnd;
/** /**
* 1.2:,3. 稿 * 1.2:,3. 稿
*/ */

@ -11,13 +11,13 @@ public class BasicEntrustRecRequest extends ListPageRequest {
private Integer id; private Integer id;
private String action; private String action;
private String entrustInv; private String entrustInv;
private String entrustDept;
private Long entrustUser; private Long entrustUser;
private String userId; private String userId;
private Date updateTime; private Date updateTime;
private String curInv; private String curInv;
private String curDept;
private String lastUpdateTime; private String lastUpdateTime;
private String entrustSubInv;
private String invWarehouseCode;
private String name; private String name;
} }

@ -29,4 +29,6 @@ public class FilterOrderDetailResultRequest extends ListPageRequest {
*/ */
private String batchNo; private String batchNo;
private int showType;
} }

@ -92,7 +92,7 @@ public class FilterOrderRequest extends ListPageRequest {
*/ */
private String thirdBillNo; private String thirdBillNo;
private String wmsUserId; private Long wmsUserId;
private String wmsUserName; private String wmsUserName;
/** /**

@ -17,6 +17,6 @@ public class AcceptOrderResponse {
private boolean finishAccept; private boolean finishAccept;
private List<IoOrderDetailBizEntity> orderDetailEntities; private List<IoOrderDetailResultResponse> orderDetailEntities;
} }

@ -20,7 +20,7 @@ public class IoOrderDetailResultResponse {
/** /**
* ID * ID
*/ */
private String bindRlFk; private Long bindRlFk;
/** /**
* DIUUID * DIUUID
@ -151,5 +151,6 @@ public class IoOrderDetailResultResponse {
* 5 * 5
*/ */
private String remark5; private String remark5;
private int acceptCount;
} }

@ -7,8 +7,6 @@ import java.util.List;
@Data @Data
public class PdaBusOrderResponse extends IoOrderResponse { public class PdaBusOrderResponse extends IoOrderResponse {
private List<IoOrderDetailBizResponse> orderDetailBizResponses; private List<IoOrderDetailBizResponse> orderDetailBizResponses;
} }

@ -321,55 +321,92 @@ public class IoAddInoutService {
PostOrderRequest.PostOrder postOrder = postOrders.get(i); PostOrderRequest.PostOrder postOrder = postOrders.get(i);
//创建单据 //创建单据
PdaOrderEntity pdaOrderEntity = postOrder.getOrderBean(); PdaOrderEntity pdaOrderEntity = postOrder.getOrderBean();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(pdaOrderEntity.getType()); IoOrderEntity orderEntity = null;
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); if (StrUtil.isNotEmpty(pdaOrderEntity.getDocid())) {
IoOrderEntity orderSaveRequest = new IoOrderEntity(); orderEntity = orderService.findByBillNo(pdaOrderEntity.getDocid());
orderSaveRequest.setBillNo(orderNo); }
if (orderEntity != null) {
orderSaveRequest.setMainAction(pdaOrderEntity.getInout()); //已包含业务单据校验
orderSaveRequest.setAction(pdaOrderEntity.getType()); orderEntity.setUpdateUser(postOrderRequest.getUserId() + "");
orderSaveRequest.setCorpOrderId(pdaOrderEntity.getOrder()); orderEntity.setUpdateTime(new Date());
orderSaveRequest.setFromCorp(pdaOrderEntity.getFromCorpID()); orderService.update(orderEntity);
orderSaveRequest.setCustomerId(postOrderRequest.getCustomerId()); List<PdaCodeEntity> pdaCodeEntities = postOrder.getCodes();
orderSaveRequest.setFromDeptCode(pdaOrderEntity.getFromDeptCode()); if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) {
orderSaveRequest.setFromInvCode(pdaOrderEntity.getFromInvCode()); PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0);
orderSaveRequest.setDeptCode(pdaOrderEntity.getDeptCode()); //写入条码
orderSaveRequest.setInvCode(pdaOrderEntity.getInvCode()); List<IoCodeTempEntity> ioCodeEnttities = new ArrayList<>();
orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); for (int index = 0; index < pdaCodeEntities.size(); index++) {
orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_POST); IoCodeTempEntity codeEnttity = new IoCodeTempEntity();
orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + ""); BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity);
orderSaveRequest.setUpdateUser(postOrderRequest.getUserId() + ""); codeEnttity.setAction(orderEntity.getAction());
orderSaveRequest.setUpdateTime(new Date()); codeEnttity.setMainAction(orderEntity.getMainAction());
orderSaveRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN); codeEnttity.setDeptCode(orderEntity.getDeptCode());
if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0) codeEnttity.setOrderId(orderEntity.getBillNo());
orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED); codeEnttity.setInvCode(orderEntity.getInvCode());
else codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(codeEnttity.getRelId()));
orderSaveRequest.setFromType(ConstantStatus.FROM_PDAUN); codeEnttity.setUpdateTime(new Date());
List<PdaCodeEntity> pdaCodeEntities = postOrder.getCodes(); codeEnttity.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate()));
if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) { ioCodeEnttities.add(codeEnttity);
PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0); }
if (pdaCodeEntity.getActDate() != null) { codeTempService.insertBatch(ioCodeEnttities);
orderSaveRequest.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); dealProcess(orderEntity);
} }
//写入条码 } else {
List<IoCodeTempEntity> ioCodeEnttities = new ArrayList<>(); //创建新单据
for (int index = 0; index < pdaCodeEntities.size(); index++) { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(pdaOrderEntity.getType());
IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity); IoOrderEntity orderSaveRequest = new IoOrderEntity();
codeEnttity.setAction(orderSaveRequest.getAction()); orderSaveRequest.setBillNo(orderNo);
codeEnttity.setMainAction(orderSaveRequest.getMainAction()); orderSaveRequest.setMainAction(pdaOrderEntity.getInout());
codeEnttity.setDeptCode(orderSaveRequest.getDeptCode()); orderSaveRequest.setAction(pdaOrderEntity.getType());
codeEnttity.setInvCode(orderSaveRequest.getInvCode()); orderSaveRequest.setCorpOrderId(pdaOrderEntity.getOrder());
codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(codeEnttity.getRelId())); orderSaveRequest.setFromCorp(pdaOrderEntity.getFromCorpID());
codeEnttity.setUpdateTime(new Date()); orderSaveRequest.setCustomerId(postOrderRequest.getCustomerId());
codeEnttity.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); orderSaveRequest.setFromDeptCode(pdaOrderEntity.getFromDeptCode());
ioCodeEnttities.add(codeEnttity); orderSaveRequest.setFromInvCode(pdaOrderEntity.getFromInvCode());
orderSaveRequest.setDeptCode(pdaOrderEntity.getDeptCode());
orderSaveRequest.setInvCode(pdaOrderEntity.getInvCode());
orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + "");
orderSaveRequest.setUpdateUser(postOrderRequest.getUserId() + "");
orderSaveRequest.setUpdateTime(new Date());
orderSaveRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);
if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0)
orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED);
else
orderSaveRequest.setFromType(ConstantStatus.FROM_PDAUN);
List<PdaCodeEntity> pdaCodeEntities = postOrder.getCodes();
if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) {
PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0);
if (pdaCodeEntity.getActDate() != null) {
orderSaveRequest.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate()));
}
//写入条码
List<IoCodeTempEntity> ioCodeEnttities = new ArrayList<>();
for (int index = 0; index < pdaCodeEntities.size(); index++) {
IoCodeTempEntity codeEnttity = new IoCodeTempEntity();
BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity);
codeEnttity.setAction(orderSaveRequest.getAction());
codeEnttity.setMainAction(orderSaveRequest.getMainAction());
codeEnttity.setDeptCode(orderSaveRequest.getDeptCode());
codeEnttity.setOrderId(orderSaveRequest.getBillNo());
codeEnttity.setInvCode(orderSaveRequest.getInvCode());
codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(codeEnttity.getRelId()));
codeEnttity.setUpdateTime(new Date());
codeEnttity.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate()));
ioCodeEnttities.add(codeEnttity);
}
codeTempService.insertBatch(ioCodeEnttities);
} }
codeTempService.insertBatch(ioCodeEnttities); orderService.insertOrder(orderSaveRequest);
dealProcess(orderSaveRequest);
} }
orderService.insertOrder(orderSaveRequest);
} }
} }
} }
@Resource @Resource

@ -57,7 +57,8 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
@Override @Override
public boolean isExit(Long relId, String bacthNo, Integer ignoreId, String orderId) { public boolean isExit(Long relId, String bacthNo, Integer ignoreId, String orderId) {
return ioOrderDetailBizDao.exists(new QueryWrapper<IoOrderDetailBizEntity>().eq("bindRlFk", relId).eq("batchNo", bacthNo).eq("orderIdFk", orderId).ne("id", ignoreId)); return ioOrderDetailBizDao.exists(new QueryWrapper<IoOrderDetailBizEntity>().eq("bindRlFk", relId).eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo)
.isNull(StrUtil.isEmpty(bacthNo), "batchNo").eq("orderIdFk", orderId).ne("id", ignoreId));
} }
@Override @Override

@ -39,7 +39,8 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService {
@Override @Override
public IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo) { public IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo) {
return ioOrderDetailCodeDao.selectOne(new QueryWrapper<IoOrderDetailCodeEntity>().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq("batchNo", bacthNo)); return ioOrderDetailCodeDao.selectOne(new QueryWrapper<IoOrderDetailCodeEntity>().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo)
.isNull(StrUtil.isEmpty(bacthNo), "batchNo"));
} }
@Override @Override

@ -45,7 +45,7 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
if (null == orderDetailResultRequest) { if (null == orderDetailResultRequest) {
return Collections.emptyList(); return Collections.emptyList();
} }
if (null == orderDetailResultRequest.getPage() && null == orderDetailResultRequest.getLimit()) { if (null != orderDetailResultRequest.getPage() && null != orderDetailResultRequest.getLimit()) {
PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit()); PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit());
} }
return orderDetailResultDao.filterList(orderDetailResultRequest); return orderDetailResultDao.filterList(orderDetailResultRequest);

@ -44,7 +44,8 @@ public class InvProductDetailServiceImpl implements InvProductDetailService {
@Override @Override
public List<InvProductDetailEntity> selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { public List<InvProductDetailEntity> selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) {
return invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>().eq("relId", relId).eq("batchNo", batchNo).eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); return invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode));
} }
@Override @Override

@ -1,5 +1,6 @@
package com.glxp.api.service.inv.impl; package com.glxp.api.service.inv.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductDao; import com.glxp.api.dao.inv.InvProductDao;
@ -39,7 +40,8 @@ public class InvProductServiceImpl implements InvProductService {
@Override @Override
public InvProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { public InvProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) {
return invProductDao.selectOne(new QueryWrapper<InvProductEntity>().eq("relIdFk", relId).eq("batchNo", batchNo).eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); return invProductDao.selectOne(new QueryWrapper<InvProductEntity>().eq("relIdFk", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode));
} }
@Override @Override

@ -25,18 +25,18 @@
<select id="filterUnSelect" parameterType="com.glxp.api.req.auth.FilterInvBusUserRequest" <select id="filterUnSelect" parameterType="com.glxp.api.req.auth.FilterInvBusUserRequest"
resultType="com.glxp.api.entity.auth.WarehouseBussinessTypeEntity"> resultType="com.glxp.api.entity.auth.WarehouseBussinessTypeEntity">
select inv_warehouse_bussiness_type.id, select auth_warehouse_bustype.id,
inv_warehouse_bussiness_type.code, auth_warehouse_bustype.code,
inv_warehouse_bussiness_type.action, auth_warehouse_bustype.action,
basic_bussiness_type.name basic_bussiness_type.name
from inv_warehouse_bussiness_type from auth_warehouse_bustype
inner join basic_bussiness_type on inv_warehouse_bussiness_type.action = basic_bussiness_type.action inner join basic_bussiness_type on auth_warehouse_bustype.action = basic_bussiness_type.action
<where> <where>
<if test="subInvCode != '' and subInvCode != null"> <if test="subInvCode != '' and subInvCode != null">
AND code = #{subInvCode} AND code = #{subInvCode}
</if> </if>
<if test="selectedCodes != null and selectedCodes.size()!=0"> <if test="selectedCodes != null and selectedCodes.size()!=0">
and inv_warehouse_bussiness_type.action not in and auth_warehouse_bustype.action not in
<foreach collection="selectedCodes" item="item" open="(" separator="," close=")"> <foreach collection="selectedCodes" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
@ -99,7 +99,6 @@
<trim prefix="set" suffixOverrides=","> <trim prefix="set" suffixOverrides=",">
<if test="userId != null">userId=#{userId},</if> <if test="userId != null">userId=#{userId},</if>
<if test="subInvCode != null">subInvCode=#{subInvCode},</if> <if test="subInvCode != null">subInvCode=#{subInvCode},</if>
<if test="parentId != null">parentId=#{parentId},</if>
<if test="scAction != null">scAction=#{scAction},</if> <if test="scAction != null">scAction=#{scAction},</if>
<if test="remark != null">remark=#{remark},</if> <if test="remark != null">remark=#{remark},</if>
</trim> </trim>

@ -25,11 +25,11 @@
<if test="curInv != null"> <if test="curInv != null">
and curInv = #{curInv} and curInv = #{curInv}
</if> </if>
<if test="entrustSubInv != null"> <if test="entrustDept != null">
and entrustSubInv = #{entrustSubInv} and entrustDept = #{entrustDept}
</if> </if>
<if test="invWarehouseCode != null"> <if test="curDept != null">
and invWarehouseCode = #{invWarehouseCode} and curDept = #{curDept}
</if> </if>
<if test="lastUpdateTime != null and lastUpdateTime != ''"> <if test="lastUpdateTime != null and lastUpdateTime != ''">
<![CDATA[ <![CDATA[

Loading…
Cancel
Save