新增按货位出库功能

pro
anthonywj 2 years ago
parent 58e035ad03
commit 59a0078a84

@ -316,4 +316,10 @@ public class ConstantStatus {
public static final int SCAN_NO_PI = 2; //有业务单无三期拣货
public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期)
//按货位出库
public static final int SPACE_OUT_NULL = 0; //无,不按货位出库
public static final int SPACE_OUT_SET = 1; //按指定货位出库
public static final int SPACE_OUT_CODE = 2; //按条码默认货位出库
}

@ -5,12 +5,15 @@ import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.auth.InvSpace;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.req.auth.FilterInvSpaceRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.auth.InvSpaceResponse;
import com.glxp.api.service.auth.InvSpaceService;
import com.glxp.api.service.auth.InvWarehouseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
@ -30,9 +33,21 @@ public class InvSpaceController {
@Resource
private InvSpaceService invSpaceService;
@Resource
private InvWarehouseService invWarehouseService;
@GetMapping("/spms/inv/space/filter")
public BaseResponse filterList(FilterInvSpaceRequest filterInvSpaceRequest) {
if (StrUtil.isNotEmpty(filterInvSpaceRequest.getFilterType())) {
if (filterInvSpaceRequest.getFilterType().equals("preIn")) {
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_PREIN);
filterInvSpaceRequest.setInvWarehouseCode(invWarehouseEntity.getCode());
} else if (filterInvSpaceRequest.getFilterType().equals("pre")) {
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE);
filterInvSpaceRequest.setInvWarehouseCode(invWarehouseEntity.getCode());
}
}
List<InvSpaceResponse> list = invSpaceService.filterList(filterInvSpaceRequest);
PageInfo<InvSpaceResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<InvSpaceResponse> pageSimpleResponse = new PageSimpleResponse<>();

@ -26,6 +26,7 @@ import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvPreInProductDetailEntity;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.req.inout.AddEnterCodeRequest;
@ -37,6 +38,7 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.basic.UdiRlSupResponse;
import com.glxp.api.res.inout.AddCodeResult;
import com.glxp.api.res.inout.IoCodeTempResponse;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*;
@ -516,104 +518,12 @@ public class IoCodeTempController extends BaseController {
}
}
}
} else {
return ResultVOUtils.error(500, "未选择预验收入库单,请先选择预验收入库单!");
}
} else if (bussinessTypeEntity.getBackPreinType() == 2) { //按货位出库
if (StrUtil.isEmpty(addOrderRequest.getCheckPreInSpaceCode()))
return ResultVOUtils.error(500, "" +
"请选择预验收货位!");
int preInCount = invPreinProductDetailService.findCountBySpaceCode(addOrderRequest.getCheckPreInSpaceCode(), code);
InvPreInProductDetailEntity invPreinDetailEntity = invPreinProductDetailService.findUseOneByCode(code);
if (preInCount <= 0) {
return ResultVOUtils.error(500, "预验收库存数量不足!");
} else {
if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(udiEntity.getBatchNo())
&& !invPreinDetailEntity.getBatchNo().equals(udiEntity.getBatchNo())) {
return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
if (codeTempEntity != null) {
if (preInCount < (codeTempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出预验收库存数量");
}
}
} else {
if (preInCount < 1) {
return ResultVOUtils.error(500, "预验收库存数量不足");
}
}
}
}
}
/**
* else { //按库存出库
* int preInCount = invPreinProductDetailService.findCountByCode(code);
* InvPreInProductDetailEntity invPreinDetailEntity = invPreinProductDetailService.findUseOneByCode(code);
* if (preInCount <= 0) {
* return ResultVOUtils.error(500, "预验收库存数量不足!");
* } else {
* if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(udiEntity.getBatchNo())
* && !invPreinDetailEntity.getBatchNo().equals(udiEntity.getBatchNo())) {
* return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
* }
* if (StrUtil.isNotEmpty(orderId)) {//非首次添加
* if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
* //无序列号,则可能存在多个预验收入库单
* IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
* if (codeTempEntity != null) {
* if (preInCount < (codeTempEntity.getMyCount() + 1)) {
* return ResultVOUtils.error(500, "超出预验收库存数量");
* }
* }
* } else {
* if (preInCount < 1) {
* return ResultVOUtils.error(500, "预验收库存数量不足");
* }
* }
* }
* }
* }
*/
}
// 是否检验寄售库存
if (bussinessTypeEntity.isAdvancePreIn()) {
int preInCount = invPreProductDetailService.findCountByCode(code);
InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(code);
if (preInCount <= 0) {
return ResultVOUtils.error(500, "寄售库存数量不足!");
} else {
if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(udiEntity.getBatchNo())
&& !invPreinDetailEntity.getBatchNo().equals(udiEntity.getBatchNo())) {
return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
if (codeTempEntity != null) {
if (preInCount < (codeTempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出寄售存数量");
}
}
} else {
if (preInCount < 1) {
return ResultVOUtils.error(500, "寄售库存数量不足");
}
}
}
}
}
if (addOrderRequest.getFromCorp() == null) {
BasicCorpEntity basicCorpEntity = basicUnitMaintainService.selectByName(addOrderRequest.getFromCorp());
if (basicCorpEntity == null && bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) {
@ -655,7 +565,14 @@ public class IoCodeTempController extends BaseController {
exitLocalEntity.setCount(exitLocalEntity.getMyCount() + 1);
exitLocalEntity.setReCount(exitLocalEntity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponses.get(0)));
BaseResponse invRes = checkInv(bussinessTypeEntity, exitLocalEntity);
BaseResponse invRes = null;
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
invRes = checkPreInInv(bussinessTypeEntity, exitLocalEntity);
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
invRes = checkPreInv(bussinessTypeEntity, exitLocalEntity);
} else {
invRes = checkInv(bussinessTypeEntity, exitLocalEntity);
}
if (invRes != null) {
return invRes;
}
@ -699,6 +616,9 @@ public class IoCodeTempController extends BaseController {
codeEnttity.setSerialNo(udiEntity.getSerialNo());
codeEnttity.setDeptCode(invWarehouseEntity.getParentId());
codeEnttity.setInvCode(addOrderRequest.getInvCode());
codeEnttity.setWarehouseCode(addOrderRequest.getCurSpaceCode());
codeEnttity.setPreSpaceCode(addOrderRequest.getPreCurSpaceCode());
codeEnttity.setPreInSpaceCode(addOrderRequest.getCheckPreInSpaceCode());
codeEnttity.setCount(1);
String unitFk = null;
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
@ -799,11 +719,27 @@ public class IoCodeTempController extends BaseController {
// if (DateUtil.)
// }
BaseResponse invRes = checkInv(bussinessTypeEntity, codeEnttity);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
BaseResponse invRes = checkPreInInv(bussinessTypeEntity, codeEnttity);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
BaseResponse invRes = checkPreInv(bussinessTypeEntity, codeEnttity);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
} else {
BaseResponse invRes = checkInv(bussinessTypeEntity, codeEnttity);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
}
genDetaiEntity = codeEnttity;
if (baseResponse == null) {
baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
@ -841,6 +777,119 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
// 校验寄售库存
public BaseResponse checkPreInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity) {
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE);
int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) {
count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), null);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) {
count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode());
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getPreSpaceCode())) {
List<InvPlaceDetailResponse> invProductDetailEntities = invPreProductDetailService.findByGroupCode(invWarehouseEntity.getCode(), codeTempEntity.getCode());
if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities);
return baseResponse;
} else if (invProductDetailEntities.size() == 1) {
InvPlaceDetailResponse invPlaceDetailResponse = invProductDetailEntities.get(0);
count = invPlaceDetailResponse.getReCount();
codeTempEntity.setPreSpaceCode(invPlaceDetailResponse.getInvSpaceCode());
} else {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
}
} else {
count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode());
}
}
InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(codeTempEntity.getCode());
if (count <= 0) {
return ResultVOUtils.error(500, "寄售库存数量不足!");
} else {
if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(codeTempEntity.getBatchNo())
&& !invPreinDetailEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) {
return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
}
if (StrUtil.isNotEmpty(codeTempEntity.getOrderId())) {//非首次添加
if (StrUtil.isEmpty(codeTempEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity tempEntity = codeTempService.findByUnique(codeTempEntity.getOrderId(), codeTempEntity.getCode());
if (tempEntity != null) {
if (count < (tempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出寄售库存数量");
}
}
} else {
if (count < 1) {
return ResultVOUtils.error(500, "寄售库存数量不足");
}
}
}
}
return null;
}
// 校验预验收库存
public BaseResponse checkPreInInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity) {
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_PREIN);
int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) {
count = invPreinProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), null);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) {
count = invPreinProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreInSpaceCode());
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getPreSpaceCode())) {
List<InvPlaceDetailResponse> invProductDetailEntities = invPreinProductDetailService.findByGroupCode(invWarehouseEntity.getCode(), codeTempEntity.getCode());
if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities);
return baseResponse;
} else if (invProductDetailEntities.size() == 1) {
InvPlaceDetailResponse invPlaceDetailResponse = invProductDetailEntities.get(0);
count = invPlaceDetailResponse.getReCount();
codeTempEntity.setPreSpaceCode(invPlaceDetailResponse.getInvSpaceCode());
} else {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
}
} else {
count = invPreinProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, codeTempEntity.getInvCode(), codeTempEntity.getPreInSpaceCode());
}
}
InvPreInProductDetailEntity invPreinDetailEntity = invPreinProductDetailService.findUseOneByCode(codeTempEntity.getCode());
if (count <= 0) {
return ResultVOUtils.error(500, "预验收库存数量不足!");
} else {
if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(codeTempEntity.getBatchNo())
&& !invPreinDetailEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) {
return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
}
if (StrUtil.isNotEmpty(codeTempEntity.getOrderId())) {//非首次添加
if (StrUtil.isEmpty(codeTempEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity tempEntity = codeTempService.findByUnique(codeTempEntity.getOrderId(), codeTempEntity.getCode());
if (tempEntity != null) {
if (count < (tempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出预验收存数量");
}
}
} else {
if (count < 1) {
return ResultVOUtils.error(500, "寄售预验收数量不足");
}
}
}
}
return null;
}
//校验条码完整性
public BaseResponse checkOriginCode(UdiEntity udiEntity) {
//校验条码的完整性
@ -979,24 +1028,38 @@ public class IoCodeTempController extends BaseController {
public BaseResponse checkInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity) {
if (bussinessTypeEntity.isVailInv() && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
// int count = invPreProductDetailService.vailStockCount(code); //todo 寄售
// if (count < 0) {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
// }
} else {
int count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null);
if (count <= 0) {
return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
} else {
//查询此单据已扫描的条码数量
if (codeTempEntity.getMyReCount() > count) {
return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode());
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getWarehouseCode())) {
List<InvPlaceDetailResponse> invProductDetailEntities = invProductDetailService.findByGroupCode(codeTempEntity.getInvCode(), codeTempEntity.getCode());
if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities);
return baseResponse;
} else if (invProductDetailEntities.size() == 1) {
InvPlaceDetailResponse invPlaceDetailResponse = invProductDetailEntities.get(0);
count = invPlaceDetailResponse.getReCount();
} else {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
}
} else {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode());
}
}
if (count <= 0) {
return ResultVOUtils.error(500, "当前库存不足");
} else {
//查询此单据已扫描的条码数量
if (codeTempEntity.getMyReCount() > count) {
return ResultVOUtils.error(500, "当前库存不足");
}
}
}
return null;
}

@ -41,7 +41,6 @@ public class InvPlaceController {
private InvPlaceOrderService invPlaceOrderService;
/**
*
*
@ -61,7 +60,7 @@ public class InvPlaceController {
* @return
*/
@PostMapping("/spms/inv/product/bindInvSpace")
public BaseResponse bindInvSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
public BaseResponse bindInvSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -75,7 +74,7 @@ public class InvPlaceController {
* @return
*/
@PostMapping("/spms/inv/product/bindInvOrderSpace")
public BaseResponse bindInvOrderSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
public BaseResponse bindInvOrderSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -90,7 +89,7 @@ public class InvPlaceController {
* @return
*/
@PostMapping("/spms/inv/product/bindCheckInvSpace")
public BaseResponse bindCheckInvSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
public BaseResponse bindCheckInvSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -104,7 +103,7 @@ public class InvPlaceController {
* @return
*/
@PostMapping("/spms/inv/product/unbindInvOrderSpace")
public BaseResponse unbindInvOrderSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
public BaseResponse unbindInvOrderSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -148,20 +147,19 @@ public class InvPlaceController {
*/
@GetMapping("/spms/inv/product/getInvProductInfo")
private BaseResponse getInvProductInfo(BindInvSpaceRequest bindInvSpaceRequest) {
List<InvPlaceDetailResponse> list = new ArrayList<>();
List<InvPlaceDetailResponse> list = new ArrayList<>();
//判断有没有库存
String msg=invPlaceService.checkCount(bindInvSpaceRequest);
if(StrUtil.isEmpty(msg)){
String msg = invPlaceService.checkCount(bindInvSpaceRequest);
if (StrUtil.isEmpty(msg)) {
//有库存做插入货位号
return invPlaceOrderService.bindInvSpaceOne(bindInvSpaceRequest);
}else{
return invPlaceOrderService.bindInvSpaceOne(bindInvSpaceRequest);
} else {
return ResultVOUtils.error(500, msg);
}
}
/**
*
*
@ -182,11 +180,11 @@ public class InvPlaceController {
@GetMapping("/spms/inv/product/getCheckInvProductInfo")
private BaseResponse getCheckInvProductInfo(BindInvSpaceRequest bindInvSpaceRequest) {
//判断有没有库存
String msg=invPlaceService.checkCount(bindInvSpaceRequest);
if(StrUtil.isEmpty(msg)){
String msg = invPlaceService.checkCount(bindInvSpaceRequest);
if (StrUtil.isEmpty(msg)) {
//有库存做插入货位号
return invPlaceOrderService.bindInvSpaceOne(bindInvSpaceRequest);
}else{
} else {
return ResultVOUtils.error(500, msg);
}
@ -200,13 +198,13 @@ public class InvPlaceController {
*/
@GetMapping("/spms/inv/product/getInvProductOutInfo")
private BaseResponse getInvProductOutInfo(BindInvSpaceRequest bindInvSpaceRequest) {
List<InvPlaceDetailResponse> list = new ArrayList<>();
List<InvPlaceDetailResponse> list = new ArrayList<>();
//判断有没有库存
String msg=invPlaceService.checkOutCount(bindInvSpaceRequest);
if(StrUtil.isEmpty(msg)){
String msg = invPlaceService.checkOutCount(bindInvSpaceRequest);
if (StrUtil.isEmpty(msg)) {
//有库存做插入货位号
return invPlaceOrderService.unbindInvSpaceOne(bindInvSpaceRequest);
}else{
} else {
return ResultVOUtils.error(500, msg);
}
@ -247,23 +245,23 @@ public class InvPlaceController {
*/
@GetMapping("/spms/inv/product/selectPlaceList")
public BaseResponse selectPlaceList(FilterInvPlaceRequest filterInvPlaceRequest) {
List<InvPlaceDetailResponse> invPlaceDetailResponseList=new ArrayStack();
if(StrUtil.isNotBlank(filterInvPlaceRequest.getCode())){
List<String> list= Arrays.asList(filterInvPlaceRequest.getCode().split("#"));
if(list!=null && list.size()>=3){
if(list.get(2) !=null && !list.get(2).equals("null")){
//用产品查询
filterInvPlaceRequest.setCode(list.get(2));
invPlaceDetailResponseList= invPlaceOrderService.filterProductList(filterInvPlaceRequest);
}else if(list.get(0) !=null && list.get(1)!=null && !list.get(0).equals("null") && !list.get(1).equals("null") ){
//用货位查询
filterInvPlaceRequest.setInvCode(list.get(0));
filterInvPlaceRequest.setInvSpaceCode(list.get(1));
filterInvPlaceRequest.setCode(null);
invPlaceDetailResponseList= invPlaceOrderService.filterSpaceList(filterInvPlaceRequest);
}else{
return ResultVOUtils.error(999,"扫码错误!");
}
List<InvPlaceDetailResponse> invPlaceDetailResponseList = new ArrayStack();
if (StrUtil.isNotBlank(filterInvPlaceRequest.getCode())) {
List<String> list = Arrays.asList(filterInvPlaceRequest.getCode().split("#"));
if (list != null && list.size() >= 3) {
if (list.get(2) != null && !list.get(2).equals("null")) {
//用产品查询
filterInvPlaceRequest.setCode(list.get(2));
invPlaceDetailResponseList = invPlaceOrderService.filterProductList(filterInvPlaceRequest);
} else if (list.get(0) != null && list.get(1) != null && !list.get(0).equals("null") && !list.get(1).equals("null")) {
//用货位查询
filterInvPlaceRequest.setInvCode(list.get(0));
filterInvPlaceRequest.setInvSpaceCode(list.get(1));
filterInvPlaceRequest.setCode(null);
invPlaceDetailResponseList = invPlaceOrderService.filterSpaceList(filterInvPlaceRequest);
} else {
return ResultVOUtils.error(999, "扫码错误!");
}
}
}
@ -272,4 +270,13 @@ public class InvPlaceController {
}
@GetMapping("/spms/inv/product/mutiPlace")
public BaseResponse selectMutiPlace(FilterInvPlaceRequest filterInvPlaceRequest) {
List<InvPlaceDetailResponse> invPlaceDetailResponseList = new ArrayStack();
invPlaceDetailResponseList = invPlaceOrderService.filterSpaceList(filterInvPlaceRequest);
PageInfo<InvPlaceDetailResponse> pageInfo = new PageInfo<>(invPlaceDetailResponseList);
return ResultVOUtils.page(pageInfo);
}
}

@ -405,7 +405,7 @@ public class SupCertController {
}
String param = JSON.toJSONString(list);
JasperUtils.jasperReport(request, response, param, filePath + "/pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf");
JasperUtils.jasperReport(request, response, param, filePath + "/pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
}
/**
@ -520,7 +520,7 @@ public class SupCertController {
}
String param = JSON.toJSONString(list);
JasperUtils.jasperReport(request, response, param, filePath + "/pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf");
JasperUtils.jasperReport(request, response, param, filePath + "/pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
}
/**
@ -586,7 +586,7 @@ public class SupCertController {
}
String param = JSON.toJSONString(list);
JasperUtils.jasperReport(request, response, param, filePath + "/pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf");
JasperUtils.jasperReport(request, response, param, filePath + "/pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
}
//首营预览文件

@ -1,8 +1,8 @@
package com.glxp.api.dao.auth;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.auth.DeptEntity;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.req.auth.FilterInvSubWarehouseRequest;
import com.glxp.api.req.auth.FilterInvWarehouseRequest;
import com.glxp.api.res.auth.InvSubWarehouseResponse;
@ -21,21 +21,18 @@ public interface InvWarehouseDao extends BaseMapperPlus<InvWarehouseDao, InvWare
InvWarehouseEntity selectMaxCode(FilterInvSubWarehouseRequest filterInvSubWarehouseRequest);
InvWarehouseEntity getByWareId(@Param("id") String id);
List<InvWarehouseEntity> getByWarePcode(@Param("parentCode") String parentCode);
boolean insertInvSubWarehouse(InvWarehouseEntity invWarehouseEntity);
boolean updateInvSubWarehouse(InvWarehouseEntity invWarehouseEntity);
void importInvSubWarehouse(@Param("invWarehouseEntities") List<InvWarehouseEntity> invSubWarehouseEntities);
boolean deleteById(String id);
boolean deleteByParentCode(@Param("code") String code);
InvWarehouseEntity getByWareId(@Param("id") String id);
List<InvWarehouseEntity> getByWarePcode(@Param("parentCode") String parentCode);
/**
* parentId
*
@ -83,12 +80,10 @@ public interface InvWarehouseDao extends BaseMapperPlus<InvWarehouseDao, InvWare
List<InvSubWarehouseResponse> filterSubInvList(FilterInvWarehouseRequest filterInvWarehouseRequest);
boolean updateTime(@Param("code") String code, @Param("updateTime") Date updateTime);
/**
* ID
*
* @param userId
* @param filterInvWarehouseRequest
* @return
*/
List<InvWarehouseEntity> selectInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest);
@ -105,4 +100,5 @@ public interface InvWarehouseDao extends BaseMapperPlus<InvWarehouseDao, InvWare
List<InvWarehouseEntity> selectLowWarehouseAll(@Param("pcode") String pCode);
}

@ -49,4 +49,9 @@ public interface InvPreInProductDetailDao extends BaseMapperPlus<InvPreInProduct
//用货架查询
List<InvPlaceDetailResponse> filterSpaceList(FilterInvPlaceRequest filterInvPlaceOrderRequest);
List<InvPlaceDetailResponse> findByGroupCode(@Param("invCode") String invCode, @Param("code") String code);
List<InvPreInProductDetailEntity> findBySpaceList(@Param("spaceList") List<String> spaceList);
}

@ -48,4 +48,6 @@ public interface InvPreProductDetailDao extends BaseMapperPlus<InvPreProductDeta
//用货架查询
List<InvPlaceDetailResponse> filterSpaceList(FilterInvPlaceRequest filterInvPlaceOrderRequest);
List<InvPlaceDetailResponse> findByGroupCode(@Param("invCode") String invCode, @Param("code") String code);
}

@ -101,4 +101,8 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
//用货架查询
List<InvPlaceDetailResponse> filterSpaceList(FilterInvPlaceRequest filterInvPlaceOrderRequest);
List<InvPlaceDetailResponse> findByGroupCode(@Param("invCode") String invCode, @Param("code") String code);
}

@ -408,8 +408,9 @@ public class BasicBussinessTypeEntity {
@TableField(value = "sortNum")
private Integer sortNum;
//是否按货位出库 0不按货位出库1:按货位出库
//是否按货位出库 01:按指定货位出库2默认货位出库
@TableField(value = "spaceOut")
private int spaceOut;
}

@ -124,6 +124,16 @@ public class IoCodeEntity implements Serializable {
@TableField(value = "warehouseCode")
private String warehouseCode;
/**
*
*/
@TableField(value = "preSpaceCode")
private String preSpaceCode;
@TableField(value = "preInSpaceCode")
private String preInSpaceCode;
/**
*
*/

@ -123,6 +123,15 @@ public class IoCodeTempEntity {
@TableField(value = "warehouseCode")
private String warehouseCode;
/**
*
*/
@TableField(value = "preSpaceCode")
private String preSpaceCode;
@TableField(value = "preInSpaceCode")
private String preInSpaceCode;
/**
*
*/
@ -135,6 +144,7 @@ public class IoCodeTempEntity {
@TableField(value = "createTime")
private Date createTime;
@TableField(exist = false)
private int status; //条码校验状态
@TableField(exist = false)

@ -257,5 +257,13 @@ public class IoOrderEntity {
@TableField(value = "checkPreInSpaceCode")
private String checkPreInSpaceCode;
// 当前货位
@TableField(value = "curSpaceCode")
private String curSpaceCode;
// 预验收、寄售当前货位
@TableField(value = "preCurSpaceCode")
private String preCurSpaceCode;
}

@ -53,7 +53,7 @@ public class FileServiceImpl implements FileService {
private DbDao dbDao;
@Resource
private IdcService idcService;
private String imagePath = "register/file/image2/";
private String imagePath = "register/image2/";
String pdfPath = "pdf/template/";
@Override

@ -85,7 +85,7 @@ public class IdcServiceImpl implements IdcService {
@Resource
private ScheduledDao scheduledDao;
private String imagePath = "register/file/image2/";
private String imagePath = "register/image2/";
/*获取拉取任务列表*/
@Override
public BaseResponse taskList(HttpServletRequest request, Map<String, Object> params) {

@ -49,4 +49,8 @@ public class FilterInvSpaceRequest extends ListPageRequest {
*/
private String remark;
// preIn获取预验收货位,pre:获取寄售货位
private String filterType;
}

@ -302,6 +302,7 @@ public class BussinessTypeSaveRequest {
private Integer sortNum;
private Boolean advancePreIn;
private int spaceOut;
}

@ -32,5 +32,7 @@ public class AddOrderRequest {
// 预验收货位
private String checkPreInSpaceCode;
private String curSpaceCode;
private String preCurSpaceCode;
private int fromVailPi; //是否需要校验三期1不需要2需要
}

@ -122,4 +122,9 @@ public class InvPlaceDetailResponse {
private String cpmctymc;
private int inCount;
private int outCount;
private int reCount;
}

@ -19,6 +19,8 @@ public interface InvWarehouseService extends IService<InvWarehouseEntity> {
InvWarehouseEntity findById(String id);
InvWarehouseEntity findByOne(Integer advanceType);
InvWarehouseEntity selectByThrCode(String code, String thirdSys);
List<InvWarehouseEntity> filterInvSubWarehouse(FilterInvSubWarehouseRequest filterInvSubWarehouseRequest);

@ -57,6 +57,14 @@ public class InvWarehouseServiceImpl extends ServiceImpl<InvWarehouseDao, InvWar
return null;
}
@Override
public InvWarehouseEntity findByOne(Integer advanceType) {
List<InvWarehouseEntity> invWarehouseEntities = invWarehouseDao.selectList(new QueryWrapper<InvWarehouseEntity>().eq("advanceType", advanceType));
if (CollUtil.isNotEmpty(invWarehouseEntities))
return invWarehouseEntities.get(0);
return null;
}
@Override
public InvWarehouseEntity selectByThrCode(String code, String thirdSys) {
FilterInvSubWarehouseRequest filterInvSubWarehouseRequest = new FilterInvSubWarehouseRequest();
@ -132,7 +140,7 @@ public class InvWarehouseServiceImpl extends ServiceImpl<InvWarehouseDao, InvWar
@Override
public boolean deleteById(String id) {
return invWarehouseDao.deleteById(id);
return invWarehouseDao.deleteById(Long.parseLong(id)) > 0;
}
@Override

@ -256,7 +256,7 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl<BasicBussinessTyp
case Constant.ORDER_ACTION_SUP_PREIN:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2)
.eq("inStock", true));
.eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT));
default:
break;

@ -14,6 +14,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.entity.inv.InvPreInProductDetailEntity;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.res.inout.IoOrderCheckResultResponse;
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
@ -23,10 +24,7 @@ import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inv.InvPreinOrderService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.JasperUtils;
import com.glxp.api.util.OrderNoTypeBean;
import com.glxp.api.util.*;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.util.udi.UdiCalCountUtil;
import net.sf.jasperreports.engine.JRException;
@ -39,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
*
@ -866,16 +865,46 @@ public class IoCheckInoutService {
} else { //按仓库货位退货
List<IoCodeEntity> backCodeList = new ArrayList<>();
// 1.获取所有货位
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo());
List<String> spaceList = new ArrayList<>();
Map<String, List<IoCodeEntity>> map = codeList.stream().collect(Collectors.groupingBy(t -> t.getPreInSpaceCode()));
for (Map.Entry<String, List<IoCodeEntity>> entry : map.entrySet()) {
spaceList.add(entry.getKey());
}
// 2.获取货位所有库存明细
List<InvPreInProductDetailEntity> invPreInProductDetailEntities = invPreinProductDetailService.findBySpaceList(spaceList);
// 3.扣减数量得出需要退货条码
for (IoCodeEntity codeEntity : codeList) {
int count = invPreinProductDetailService.findCountBySpaceCode(codeEntity.getCode(), orderEntity.getCheckPreInSpaceCode());
if (count > 0) {
codeEntity.setCount(count);
codeEntity.setReCount(udiCalCountUtil.getActCount(codeEntity.getNameCode()));
codeEntity.setWarehouseCode(orderEntity.getCheckPreInSpaceCode());
backCodeList.add(codeEntity);
for (InvPreInProductDetailEntity invPreInProductDetailEntity : invPreInProductDetailEntities) {
if (codeEntity.getCode().equals(invPreInProductDetailEntity.getCode())) {
int reCount = IntUtil.value(invPreInProductDetailEntity.getReCount()) - IntUtil.value(codeEntity.getReCount());
int count = IntUtil.value(invPreInProductDetailEntity.getCount()) - IntUtil.value(codeEntity.getCount());
if (reCount >= 0) {
invPreInProductDetailEntity.setReCount(reCount);
invPreInProductDetailEntity.setCount(count);
break;
} else if (reCount < 0) {
codeEntity.setReCount(-reCount);
codeEntity.setCount(-count);
}
}
}
}
for (InvPreInProductDetailEntity invPreInProductDetailEntity : invPreInProductDetailEntities) {
if (IntUtil.value(invPreInProductDetailEntity.getReCount()) > 0) {
IoCodeEntity ioCodeEntity = new IoCodeEntity();
BeanUtils.copyProperties(invPreInProductDetailEntity, ioCodeEntity);
ioCodeEntity.setWarehouseCode(invPreInProductDetailEntity.getInvSpaceCode());
backCodeList.add(ioCodeEntity);
}
}
// 4.生成退货单
genBackOrder(orderEntity, backCodeList);
}
}
@ -916,6 +945,7 @@ public class IoCheckInoutService {
outOrder.setInvCode(invWarehouseEntity.getCode());
outOrder.setDeptCode(invWarehouseEntity.getParentId());
outOrder.setFromCorp(codeEntity.getSupId());
outOrder.setOrderType(2);
outOrder.setCreateTime(new Date());
outOrder.setFromType(ConstantStatus.FROM_BACK);
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(basicBussinessTypeEntity.getPrefix()), "yyyyMMdd"));

@ -102,6 +102,7 @@ public class IoGenInvService {
invProductDetailEntity.setRelId(codeEntity.getRelId());
invProductDetailEntity.setUpdateTime(new Date());
invProductDetailEntity.setId(null);
invProductDetailEntity.setInvSpaceCode(codeEntity.getWarehouseCode());
invProductDetailEntity.setPurchaseType(ConstantStatus.PRUCHASE_COMMON);
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
invProductDetailEntity.setInCount(invProductDetailEntity.getReCount());
@ -173,6 +174,7 @@ public class IoGenInvService {
invProductDetailEntity.setRelId(codeEntity.getRelId());
invProductDetailEntity.setUpdateTime(new Date());
invProductDetailEntity.setId(null);
invProductDetailEntity.setInvSpaceCode(codeEntity.getPreSpaceCode());
invProductDetailEntity.setPurchaseType(ConstantStatus.PRUCHASE_COMMON);
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
invProductDetailEntity.setInCount(invProductDetailEntity.getReCount());
@ -255,6 +257,7 @@ public class IoGenInvService {
invProductDetailEntity.setRelId(codeEntity.getRelId());
invProductDetailEntity.setUpdateTime(new Date());
invProductDetailEntity.setId(null);
invProductDetailEntity.setInvSpaceCode(codeEntity.getPreInSpaceCode());
invProductDetailEntity.setPurchaseType(ConstantStatus.PRUCHASE_COMMON);
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
invProductDetailEntity.setInCount(invProductDetailEntity.getReCount());

@ -5,6 +5,7 @@ import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import java.util.List;
@ -54,5 +55,7 @@ public interface InvPreProductDetailService {
InvPreProductDetailEntity findUseOneByCode(String code);
int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode);
List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code);
}

@ -5,7 +5,9 @@ import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -57,4 +59,10 @@ public interface InvPreinProductDetailService {
int findCountBySpaceCode(String spaceCode, String code);
InvPreInProductDetailEntity findUseOneByCode(String code);
int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode);
List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code);
List<InvPreInProductDetailEntity> findBySpaceList(List<String> spaceList);
}

@ -3,7 +3,9 @@ package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvProductDetailResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -50,4 +52,7 @@ public interface InvProductDetailService {
int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode);
List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code);
}

@ -10,6 +10,7 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.auth.InvSpaceDao;
import com.glxp.api.dao.auth.InvWarehouseDao;
import com.glxp.api.dao.inv.*;
@ -120,7 +121,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("code", invPlaceOrderDetailEntity.getCode()).eq("mainAction", ConstantType.TYPE_PUT);
if (bindInvSpaceRequest.getType() == 3) {
ew.eq("invSpaceCode", bindInvSpaceRequest.getChangeSpaceCode());
} else {
@ -184,7 +185,8 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("code", invPlaceOrderDetailEntity.getCode()).eq("mainAction", ConstantType.TYPE_PUT);
;
if (bindInvSpaceRequest.getType() == 3) {
ew.eq("invSpaceCode", bindInvSpaceRequest.getChangeSpaceCode());
} else {
@ -244,7 +246,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("code", invPlaceOrderDetailEntity.getCode()).eq("mainAction", ConstantType.TYPE_PUT);
if (bindInvSpaceRequest.getType() == 3) {
ew.eq("invSpaceCode", bindInvSpaceRequest.getChangeSpaceCode());
} else {
@ -679,7 +681,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
// String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode());
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.filterGroupInvSubAndcode(bindInvSpaceRequest.getInvCode());
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList = new ArrayList<>();
int total=0;
int total = 0;
if (bindInvSpaceRequest.getOutCount() > 0) {
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
invPlaceOrderDetailEntityList = invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId", bindInvSpaceRequest.getOrderId()));
@ -885,7 +887,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
InvPreInProductDetailEntity invPreInProductDetailEntity = new InvPreInProductDetailEntity();
invPreInProductDetailEntity.setInvSpaceCode("");
List<InvPreInProductDetailEntity> invProductDetailEntityList=invPreInProductDetailDao.selectList(ew);
List<InvPreInProductDetailEntity> invProductDetailEntityList = invPreInProductDetailDao.selectList(ew);
//操作人ID
String userId = customerService.getUserIdStr();
String recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd"));
@ -899,7 +901,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
for (InvPreInProductDetailEntity productDetailEntity : invProductDetailEntityList) {
for (int i=0;i<productDetailEntity.getCount();i++){
for (int i = 0; i < productDetailEntity.getCount(); i++) {
//插入附表不存在就新增存在就更新
QueryWrapper<InvPlaceOrderDetailEntity> ew1 = new QueryWrapper<>();
ew1.eq("recordId", recordId);
@ -908,7 +910,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
if (invPlaceOrderDetailEntity != null) {
invPlaceOrderDetailEntity.setCount(invPlaceOrderDetailEntity.getCount() + 1);
invPlaceOrderDetailDao.updateById(invPlaceOrderDetailEntity);
}else{
} else {
invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);
@ -937,7 +939,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
InvPreProductDetailEntity invPreProductDetailEntity = new InvPreProductDetailEntity();
invPreProductDetailEntity.setInvSpaceCode("");
List<InvPreProductDetailEntity> invProductDetailEntityList=invPreProductDetailDao.selectList(ew);
List<InvPreProductDetailEntity> invProductDetailEntityList = invPreProductDetailDao.selectList(ew);
//操作人ID
String userId = customerService.getUserIdStr();
String recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd"));
@ -951,7 +953,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
for (InvPreProductDetailEntity productDetailEntity : invProductDetailEntityList) {
for (int i=0;i<productDetailEntity.getCount();i++){
for (int i = 0; i < productDetailEntity.getCount(); i++) {
//插入附表不存在就新增存在就更新
QueryWrapper<InvPlaceOrderDetailEntity> ew1 = new QueryWrapper<>();
ew1.eq("recordId", recordId);
@ -960,7 +962,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
if (invPlaceOrderDetailEntity != null) {
invPlaceOrderDetailEntity.setCount(invPlaceOrderDetailEntity.getCount() + 1);
invPlaceOrderDetailDao.updateById(invPlaceOrderDetailEntity);
}else{
} else {
invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);
@ -988,7 +990,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity();
invProductDetailEntity.setInvSpaceCode("");
List<InvProductDetailEntity> invProductDetailEntityList=invProductDetailDao.selectList(ew);
List<InvProductDetailEntity> invProductDetailEntityList = invProductDetailDao.selectList(ew);
//操作人ID
String userId = customerService.getUserIdStr();
String recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd"));
@ -1002,7 +1004,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
for (InvProductDetailEntity productDetailEntity : invProductDetailEntityList) {
for (int i=0;i<productDetailEntity.getCount();i++){
for (int i = 0; i < productDetailEntity.getCount(); i++) {
//插入附表不存在就新增存在就更新
QueryWrapper<InvPlaceOrderDetailEntity> ew1 = new QueryWrapper<>();
ew1.eq("recordId", recordId);
@ -1011,7 +1013,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
if (invPlaceOrderDetailEntity != null) {
invPlaceOrderDetailEntity.setCount(invPlaceOrderDetailEntity.getCount() + 1);
invPlaceOrderDetailDao.updateById(invPlaceOrderDetailEntity);
}else{
} else {
invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);

@ -15,9 +15,11 @@ import com.glxp.api.entity.auth.InvSpace;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvPreInProductDetailEntity;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import com.glxp.api.service.auth.InvSpaceService;
import com.glxp.api.service.inv.InvPreProductDetailService;
@ -209,4 +211,44 @@ public class InvPreInProductDetailServiceImpl implements InvPreinProductDetailSe
}
@Override
public int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode) {
if (relId == null) {
return 0;
}
List<InvPreInProductDetailEntity> datas =
invPreInProductDetailDao.selectList(new QueryWrapper<InvPreInProductDetailEntity>().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq(StrUtil.isNotEmpty(supId), "supId", supId).eq(StrUtil.isNotEmpty(deptCode), "deptCode", deptCode).eq("invCode", invCode).eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode));
int count = 0;
if (CollUtil.isNotEmpty(datas)) {
for (InvPreInProductDetailEntity invProductDetailEntity : datas) {
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT))
count = count + invProductDetailEntity.getReCount();
else {
count = count - invProductDetailEntity.getReCount();
}
}
}
return count;
}
@Override
public List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code) {
if (StrUtil.isNotEmpty(invCode) && StrUtil.isNotEmpty(code)) {
List<InvPlaceDetailResponse> datas =
invPreInProductDetailDao.findByGroupCode(invCode, code);
return datas;
}
return null;
}
@Override
public List<InvPreInProductDetailEntity> findBySpaceList(List<String> spaceList) {
return invPreInProductDetailDao.findBySpaceList(spaceList);
}
}

@ -19,6 +19,7 @@ import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import com.glxp.api.service.auth.InvSpaceService;
import com.glxp.api.service.inv.InvPreProductDetailService;
@ -185,4 +186,37 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic
return null;
}
@Override
public int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode) {
if (relId == null) {
return 0;
}
List<InvPreProductDetailEntity> datas =
invPreProductDetailDao.selectList(new QueryWrapper<InvPreProductDetailEntity>().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq(StrUtil.isNotEmpty(supId), "supId", supId).eq(StrUtil.isNotEmpty(deptCode), "deptCode", deptCode).eq("invCode", invCode).eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode));
int count = 0;
if (CollUtil.isNotEmpty(datas)) {
for (InvPreProductDetailEntity invProductDetailEntity : datas) {
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT))
count = count + invProductDetailEntity.getReCount();
else {
count = count - invProductDetailEntity.getReCount();
}
}
}
return count;
}
@Override
public List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code) {
if (StrUtil.isNotEmpty(invCode) && StrUtil.isNotEmpty(code)) {
List<InvPlaceDetailResponse> datas =
invPreProductDetailDao.findByGroupCode(invCode, code);
return datas;
}
return null;
}
}

@ -15,6 +15,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvProductDetailResponse;
import com.glxp.api.service.auth.InvSpaceService;
import com.glxp.api.service.inv.InvProductDetailService;
@ -189,4 +190,15 @@ public class InvProductDetailServiceImpl implements InvProductDetailService {
}
return count;
}
@Override
public List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code) {
if (StrUtil.isNotEmpty(invCode) && StrUtil.isNotEmpty(code)) {
List<InvPlaceDetailResponse> datas =
invProductDetailDao.findByGroupCode(invCode, code);
return datas;
}
return null;
}
}

@ -168,12 +168,6 @@
</insert>
<delete id="deleteById" parameterType="Map">
DELETE
FROM auth_warehouse
WHERE id = #{id}
</delete>
<delete id="deleteByParentCode" parameterType="Map">
DELETE

@ -8,7 +8,7 @@
t2.invCode,
t2.invSpaceCode,
t.createUser,
t.count as count,
t2.count as count,
(select employeeName from auth_user where id = t.createUser) operatorName,
(select name from auth_warehouse where code = t2.invCode) invName,
(select name from auth_space where code = t2.invSpaceCode) invSpaceName,
@ -28,9 +28,9 @@
bp.manufactory,
bp.measname
from inv_place_order t
right join inv_place_order_detail t2 on t.recordId = t2.recordId
left join basic_udirel bu on bu.id = t2.relId
left join basic_products bp on bp.uuid = bu.uuid
right join inv_place_order_detail t2 on t.recordId = t2.recordId
left join basic_udirel bu on bu.id = t2.relId
left join basic_products bp on bp.uuid = bu.uuid
<where>
<if test="recordId != null and recordId != ''">
and t.recordId like concat('%', #{recordId}, '%')
@ -63,6 +63,5 @@
and bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
</if>
</where>
</select>
</mapper>
</mapper>

@ -223,13 +223,10 @@
</select>
<select id="getInventoryQuantity" resultType="Integer">
SELECT ifnull(SUM(inCount),0)-ifnull(SUM(outCount),0)
FROM
inv_prein_product_detail ipd
WHERE
CODE = #{code}
and (invSpaceCode is null or invSpaceCode = '' )
SELECT ifnull(SUM(inCount), 0) - ifnull(SUM(outCount), 0)
FROM inv_prein_product_detail ipd
WHERE CODE = #{code}
and (invSpaceCode is null or invSpaceCode = '')
</select>
<select id="filterSpaceList" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
@ -269,4 +266,74 @@
invSpaceCode
</select>
<select id="findByGroupCode" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
select pd.id,
pd.code,
pd.relId,
pd.batchNo,
pd.produceDate productionDate,
pd.expireDate,
bp.ggxh,
bp.cpmctymc productName,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
bp.nameCode,
bp.manufactory,
pd.invSpaceCode,
pd.invCode,
ad.name deptName,
aw.name invName,
sp.name invSpaceName,
sum(pd.inCount) as inCount,
sum(pd.outCount) as outCount,
sum(pd.reCount) as reCount
from inv_prein_product_detail pd
left join basic_udirel bu on pd.relId = bu.id
left join basic_products bp on bp.uuid = bu.uuid
left join auth_dept ad on pd.deptCode = ad.code
left join auth_warehouse aw on pd.invCode = aw.code
left join auth_space sp on pd.invSpaceCode = sp.code
and sp.invStorageCode = pd.deptCode and sp.invWarehouseCode = pd.invCode
<where>
<if test="invCode != null and invCode != ''">
AND pd.invCode = #{invCode}
</if>
<if test="code != null and code != ''">
AND pd.code = #{code}
</if>
</where>
group by pd.invSpaceCode
</select>
<select id="findBySpaceList" resultType="com.glxp.api.entity.inv.InvPreInProductDetailEntity">
select pd.id,
pd.code,
pd.relId,
pd.batchNo,
pd.produceDate,
pd.expireDate,
pd.invSpaceCode,
pd.deptCode,
pd.invCode,
pd.supId,
pd.nameCode,
pd.invSpaceCode,
ifnull(sum(pd.count), 0) as count,
ifnull(sum(pd.inCount), 0) as inCount,
ifnull(sum(pd.outCount), 0) as outCount,
ifnull(sum(pd.reCount), 0) as reCount
from inv_prein_product_detail pd
<where>
reCount > 0
<if test="spaceList != null and spaceList.size() != 0">
AND pd.invSpaceCode in
<foreach collection="spaceList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
group by code
</select>
</mapper>

@ -266,4 +266,44 @@
CODE,
invSpaceCode
</select>
<select id="findByGroupCode" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
select pd.id,
pd.code,
pd.relId,
pd.batchNo,
pd.produceDate productionDate,
pd.expireDate,
bp.ggxh,
bp.cpmctymc productName,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
bp.nameCode,
bp.manufactory,
pd.invSpaceCode,
pd.invCode,
ad.name deptName,
aw.name invName,
sp.name invSpaceName,
sum(pd.inCount) as inCount,
sum(pd.outCount) as outCount,
sum(pd.reCount) as reCount
from inv_pre_product_detail pd
left join basic_udirel bu on pd.relId = bu.id
left join basic_products bp on bp.uuid = bu.uuid
left join auth_dept ad on pd.deptCode = ad.code
left join auth_warehouse aw on pd.invCode = aw.code
left join auth_space sp on pd.invSpaceCode = sp.code
and sp.invStorageCode = pd.deptCode and sp.invWarehouseCode = pd.invCode
<where>
<if test="invCode != null and invCode != ''">
AND pd.invCode = #{invCode}
</if>
<if test="code != null and code != ''">
AND pd.code = #{code}
</if>
</where>
group by pd.invSpaceCode
</select>
</mapper>

@ -204,6 +204,46 @@
group by pd.code
</select>
<select id="findByGroupCode" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
select pd.id,
pd.code,
pd.relId,
pd.batchNo,
pd.produceDate productionDate,
pd.expireDate,
bp.ggxh,
bp.cpmctymc productName,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
bp.nameCode,
bp.manufactory,
pd.invSpaceCode,
pd.invCode,
ad.name deptName,
aw.name invName,
sp.name invSpaceName,
sum(pd.inCount) as inCount,
sum(pd.outCount) as outCount,
sum(pd.reCount) as reCount
from inv_product_detail pd
left join basic_udirel bu on pd.relId = bu.id
left join basic_products bp on bp.uuid = bu.uuid
left join auth_dept ad on pd.deptCode = ad.code
left join auth_warehouse aw on pd.invCode = aw.code
left join auth_space sp on pd.invSpaceCode = sp.code
and sp.invStorageCode = pd.deptCode and sp.invWarehouseCode = pd.invCode
<where>
<if test="invCode != null and invCode != ''">
AND pd.invCode = #{invCode}
</if>
<if test="code != null and code != ''">
AND pd.code = #{code}
</if>
</where>
group by pd.invSpaceCode
</select>
<update id="batchBindSpace">
update inv_product_detail
set invSpaceCode = #{invSpaceCode}

Loading…
Cancel
Save