预验收补单相关流程修改

master
anthonywj 2 years ago
parent 2e94266bea
commit 77b9104e71

@ -3,6 +3,11 @@ package com.glxp.api.constant;
public class Constant { public class Constant {
public static String SYSTEM_CUSTOMER_ID = "110"; public static String SYSTEM_CUSTOMER_ID = "110";
public static final String INV_PRE_IN_CODE = "1000001";//默认预验收仓库号
public static final String INV_PRE_CODE = "1000002";//默认寄售仓库号
public static String MUTI = "MUTI"; public static String MUTI = "MUTI";
public static final String SERIAL_CACHE_PREFIX = "serial_"; public static final String SERIAL_CACHE_PREFIX = "serial_";
@ -245,5 +250,7 @@ public class Constant {
public static final String ORDER_ACTION_SUP_INVOICE = "supInvoice"; public static final String ORDER_ACTION_SUP_INVOICE = "supInvoice";
public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit"; public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit";
public static final String ORDER_ACTION_SUP_INOUT = "supInout"; public static final String ORDER_ACTION_SUP_INOUT = "supInout";
public static final String ORDER_ACTION_SUP_PREIN = "preInOrder";
} }

@ -449,7 +449,7 @@ public class BasicBussinessTypeController extends BaseController {
FilterBussinessTypeRequest bussinessTypeFilterRequest = new FilterBussinessTypeRequest(); FilterBussinessTypeRequest bussinessTypeFilterRequest = new FilterBussinessTypeRequest();
bussinessTypeFilterRequest.setActionType(2); bussinessTypeFilterRequest.setActionType(2);
bussinessTypeFilterRequest.setMainAction("WareHouseOut"); bussinessTypeFilterRequest.setMainAction(ConstantType.TYPE_OUT);
bussinessTypeFilterRequest.setCorpType(2); bussinessTypeFilterRequest.setCorpType(2);
List<BasicBussinessTypeEntity> bussinessTypeEntities = basicBussinessTypeService.findList(bussinessTypeFilterRequest); List<BasicBussinessTypeEntity> bussinessTypeEntities = basicBussinessTypeService.findList(bussinessTypeFilterRequest);
return ResultVOUtils.success(bussinessTypeEntities); return ResultVOUtils.success(bussinessTypeEntities);

@ -32,15 +32,13 @@ import com.glxp.api.req.inout.FilterCodeRequest;
import com.glxp.api.req.inout.PostOrderRequest; import com.glxp.api.req.inout.PostOrderRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse; 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.AddCodeResult;
import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.res.inout.IoCodeTempResponse;
import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*; import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.*;
import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.*;
import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.service.purchase.SupProductService; import com.glxp.api.service.purchase.SupProductService;
import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil; import com.glxp.api.util.CustomUtil;
@ -92,14 +90,15 @@ public class IoCodeTempController extends BaseController {
@Resource @Resource
InvPreinProductDetailService invPreinProductDetailService; InvPreinProductDetailService invPreinProductDetailService;
@Resource @Resource
InvPreProductDetailService invPreProductDetailService;
@Resource
InvProductDetailService invProductDetailService; InvProductDetailService invProductDetailService;
@Resource
IoCodeLostService codeLostService;
@Resource @Resource
IoOrderDetailBizService orderDetailBizService; IoOrderDetailBizService orderDetailBizService;
@Resource @Resource
IoCodeService codeService; IoCodeService codeService;
@Resource
InvPreProductDetailService invPreProductDetailService;
//手持端扫码单据上传调用接口 //手持端扫码单据上传调用接口
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@ -332,11 +331,6 @@ public class IoCodeTempController extends BaseController {
return null; return null;
} }
@Resource
IoCodeLostService codeLostService;
@Resource
SupProductService supProductService;
//前端扫码提交 //前端扫码提交
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("warehouse/inout/addOrderWeb") @PostMapping("warehouse/inout/addOrderWeb")
@ -413,14 +407,14 @@ public class IoCodeTempController extends BaseController {
udiEntity.setProduceDate(codeLostEntity.getProduceDate()); udiEntity.setProduceDate(codeLostEntity.getProduceDate());
} }
// if (StrUtil.isNotEmpty(orderId)) { if (StrUtil.isNotEmpty(orderId)) {
// List<IoCodeTempEntity> ioCodeEnttities = codeTempService.findByOrderId(orderId); List<IoCodeTempEntity> ioCodeEnttities = codeTempService.findByOrderId(orderId);
// IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities); IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities);
// if (ioCodeEnttity == null) { if (ioCodeEnttity == null) {
// return checkOriginCodeRes; return checkOriginCodeRes;
// } }
// } else } else
// return checkOriginCodeRes; return checkOriginCodeRes;
} }
} }
@ -428,22 +422,12 @@ public class IoCodeTempController extends BaseController {
//过期提醒: //过期提醒:
// SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip"); // SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip");
if (bussinessTypeEntity.getCheckExpire() == 1 && !addOrderRequest.isIgnoreExpire()) { if (bussinessTypeEntity.getCheckVailDate() == 1 && !addOrderRequest.isIgnoreExpire()) {
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
String expireDate = "20" + udiEntity.getExpireDate(); String expireDate = "20" + udiEntity.getExpireDate();
long expireTime = DateUtil.parseDateExpire(expireDate); long expireTime = DateUtil.parseDateExpire(expireDate);
if (expireTime - System.currentTimeMillis() < 0) { if (expireTime - System.currentTimeMillis() < 0) {
return ResultVOUtils.error(504, "当前产品已过期,是否继续添加?"); return ResultVOUtils.error(504, "当前产品已过期,是否确定继续添加?");
}
}
}
if (bussinessTypeEntity.getCheckExpire() == 2) {
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
String expireDate = "20" + udiEntity.getExpireDate();
long expireTime = DateUtil.parseDateExpire(expireDate);
if (expireTime - System.currentTimeMillis() < 0) {
return ResultVOUtils.error(509, "当前产品已过期,无法继续添加?");
} }
} }
} }
@ -502,14 +486,13 @@ public class IoCodeTempController extends BaseController {
if (bussinessTypeEntity.isScanPreIn()) { if (bussinessTypeEntity.isScanPreIn()) {
if (bussinessTypeEntity.getBackPreinType() == 1) {//按单出库 if (bussinessTypeEntity.getBackPreinType() == 1) {//按单出库
String orderIds = addOrderRequest.getCheckPreInOrders();
String orderIds = bussinessTypeEntity.getCheckPreInOrders();
if (StrUtil.isNotEmpty(orderIds)) { if (StrUtil.isNotEmpty(orderIds)) {
String[] orderIdArray = StringUtils.split(","); String[] orderIdArray = orderIds.split(",");
List<String> orderList = CollUtil.toList(orderIdArray); List<String> orderList = CollUtil.toList(orderIdArray);
int count = codeService.findByOrderIdsCount(orderList, code); int count = codeService.findByOrderIdsCount(orderList, code);
if (count <= 0) { if (count <= 0) {
return ResultVOUtils.error(500, "预验收库存数量不足!"); return ResultVOUtils.error(500, "非预验收单产品或预验收库存数量不足!");
} }
if (StrUtil.isNotEmpty(orderId)) {//非首次添加 if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
@ -734,6 +717,7 @@ public class IoCodeTempController extends BaseController {
orderEntity.setUpdateTime(new Date()); orderEntity.setUpdateTime(new Date());
orderEntity.setCustomerId(authAdmin.getCustomerId() + ""); orderEntity.setCustomerId(authAdmin.getCustomerId() + "");
orderEntity.setDeptCode(invWarehouseEntity.getParentId()); orderEntity.setDeptCode(invWarehouseEntity.getParentId());
orderEntity.setCheckPreInOrders(addOrderRequest.getCheckPreInOrders());
orderEntity.setInvCode(addOrderRequest.getInvCode()); orderEntity.setInvCode(addOrderRequest.getInvCode());
orderEntity.setOrderType(addOrderRequest.getOrderType()); orderEntity.setOrderType(addOrderRequest.getOrderType());
orderEntity.setBusType(bussinessTypeEntity.getBusType()); orderEntity.setBusType(bussinessTypeEntity.getBusType());
@ -1107,9 +1091,6 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(500, "数量不能小于0"); return ResultVOUtils.error(500, "数量不能小于0");
} }
codeTempEntity.setReCount(codeTempEntity.getMyCount() * udiCalCountUtil.getActCount(codeTempEntity.getNameCode())); codeTempEntity.setReCount(codeTempEntity.getMyCount() * udiCalCountUtil.getActCount(codeTempEntity.getNameCode()));
if (codeTempEntity.getId() == null) {
}
int b = codeTempService.updateById(codeTempEntity); int b = codeTempService.updateById(codeTempEntity);
if (b > 0) if (b > 0)
return ResultVOUtils.success("修改成功"); return ResultVOUtils.success("修改成功");

@ -4,12 +4,14 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreInProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
/** /**
* Dao * Dao
*/ */
@Mapper
public interface InvPreInProductDetailDao extends BaseMapperPlus<InvPreInProductDetailDao, InvPreInProductDetailEntity, InvPreInProductDetailEntity> { public interface InvPreInProductDetailDao extends BaseMapperPlus<InvPreInProductDetailDao, InvPreInProductDetailEntity, InvPreInProductDetailEntity> {
/** /**

@ -4,12 +4,14 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inv.InvPreinProductEntity; import com.glxp.api.entity.inv.InvPreinProductEntity;
import com.glxp.api.req.inv.FilterInvPreinProductRequest; import com.glxp.api.req.inv.FilterInvPreinProductRequest;
import com.glxp.api.res.inv.InvPreinProductResponse; import com.glxp.api.res.inv.InvPreinProductResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
/** /**
* Dao * Dao
*/ */
@Mapper
public interface InvPreinProductDao extends BaseMapperPlus<InvPreinProductDao, InvPreinProductEntity, InvPreinProductEntity> { public interface InvPreinProductDao extends BaseMapperPlus<InvPreinProductDao, InvPreinProductEntity, InvPreinProductEntity> {
/** /**

@ -123,7 +123,7 @@ public class BasicBusTypePreEntity {
@TableField(value = "remark") @TableField(value = "remark")
private String remark; private String remark;
// 创建单模式1送货至入库单模式2.向上级补单模式3.预验收/寄售转入库单模式 // 创建单模式1送货至入库单模式2.向上级补单模式3.预验收转入库单模式4.寄售转入库单模式
@TableField(value = "createType") @TableField(value = "createType")
private int createType; private int createType;

@ -402,8 +402,6 @@ public class BasicBussinessTypeEntity {
// 预验收剩余库存退库方式 1:按单使用或退库2按货位/仓库使用或退库 // 预验收剩余库存退库方式 1:按单使用或退库2按货位/仓库使用或退库
@TableField(value = "backPreinType") @TableField(value = "backPreinType")
private Integer backPreinType; private Integer backPreinType;
@TableField(value = "checkPreInOrders")
private String checkPreInOrders;
// 寄售使用禁止无库存出库 // 寄售使用禁止无库存出库
@TableField(value = "advancePreIn") @TableField(value = "advancePreIn")

@ -241,4 +241,7 @@ public class IoOrderEntity {
@TableField(value = "checkStatus") @TableField(value = "checkStatus")
private Integer checkStatus; //确认状态 private Integer checkStatus; //确认状态
@TableField(value = "checkPreInOrders")
private String checkPreInOrders;
} }

@ -12,7 +12,7 @@ import java.util.Date;
* *
*/ */
@Data @Data
@TableName(value = "inv_pre_product_detail") @TableName(value = "inv_prein_product_detail")
public class InvPreInProductDetailEntity { public class InvPreInProductDetailEntity {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;

@ -27,4 +27,5 @@ public class AddOrderRequest {
private boolean codeFillCheck; private boolean codeFillCheck;
private Integer orderType; private Integer orderType;
private String remark; private String remark;
private String checkPreInOrders;
} }

@ -136,6 +136,7 @@ public class FilterOrderRequest extends ListPageRequest {
* checkedError * checkedError
* checkSuccess * checkSuccess
* audited * audited
* * preInOrder
*/ */
private String statusType; private String statusType;

@ -11,6 +11,7 @@ import java.util.List;
public interface DeptService { public interface DeptService {
List<String> selectByIdCode(List<String> list); List<String> selectByIdCode(List<String> list);
DeptEntity findDefault(Integer advaceType, Boolean isDefault); DeptEntity findDefault(Integer advaceType, Boolean isDefault);
DeptEntity selectMaxCode(FilterInvWarehouseRequest filterInvWarehouseRequest); DeptEntity selectMaxCode(FilterInvWarehouseRequest filterInvWarehouseRequest);
@ -31,7 +32,7 @@ public interface DeptService {
DeptEntity selectByName(String name); DeptEntity selectByName(String name);
Long getIdByCode( Long fromCorpId); Long getIdByCode(Long fromCorpId);
boolean deleteById(String id); boolean deleteById(String id);
@ -73,7 +74,7 @@ public interface DeptService {
boolean updateTime(String code, Date updateTime); boolean updateTime(String code, Date updateTime);
List<DeptEntity> getDeptById( List<Integer> ids); List<DeptEntity> getDeptById(List<Integer> ids);
List<DeptEntity> selectByPcode(String pcode); List<DeptEntity> selectByPcode(String pcode);

@ -251,6 +251,10 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>() bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.gt("spUse", 0).eq("enable", true)); .gt("spUse", 0).eq("enable", true));
break; break;
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));
default: default:
break; break;
} }

@ -338,7 +338,7 @@ public class IoAddInoutService {
IoOrderEntity order = orderService.findByBillNo(orderId); IoOrderEntity order = orderService.findByBillNo(orderId);
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(order.getAction()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(order.getAction());
if (StrUtil.isBlank(bussinessTypeEntity.getSupplementOrderType())) { if (StrUtil.isBlank(bussinessTypeEntity.getSupplementOrderType())) {
return ResultVOUtils.error(ResultEnum.valueOf("此类型单据不可补单")); return ResultVOUtils.error(500, "此类型单据不可补单");
} }
IoOrderEntity supplementOrder = new IoOrderEntity(); IoOrderEntity supplementOrder = new IoOrderEntity();
BeanUtil.copyProperties(order, supplementOrder); BeanUtil.copyProperties(order, supplementOrder);

@ -196,19 +196,17 @@ public class IoChangeInoutService {
outOrder.setFromInvCode(null); outOrder.setFromInvCode(null);
outOrder.setFromDeptCode(null); outOrder.setFromDeptCode(null);
} else if (bussinessChangeTypeEntity.getCreateType() == 3) { //寄售、预验收补单 } else if (bussinessChangeTypeEntity.getCreateType() == 3) { //寄售、预验收补单
if (targetBustypeEntity.getActionType() == 2) { outOrder.setCustomerId(null);
outOrder.setCustomerId(null); outOrder.setFromCorp(null);
outOrder.setFromCorp(null); InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(Constant.INV_PRE_IN_CODE);
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode("1000001"); outOrder.setFromInvCode(invWarehouseEntity.getCode());
outOrder.setFromInvCode(invWarehouseEntity.getCode()); outOrder.setFromDeptCode(invWarehouseEntity.getParentId());
outOrder.setFromDeptCode(invWarehouseEntity.getParentId()); } else if (targetBustypeEntity.getActionType() == 4) {
} else if (targetBustypeEntity.getActionType() == 3) { outOrder.setCustomerId(null);
outOrder.setCustomerId(null); outOrder.setFromCorp(null);
outOrder.setFromCorp(null); InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(Constant.INV_PRE_CODE);
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode("1000002"); outOrder.setFromInvCode(invWarehouseEntity.getCode());
outOrder.setFromInvCode(invWarehouseEntity.getCode()); outOrder.setFromDeptCode(invWarehouseEntity.getParentId());
outOrder.setFromDeptCode(invWarehouseEntity.getParentId());
}
} else { } else {
outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID);
InvWarehouseEntity curInv = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); InvWarehouseEntity curInv = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode());

@ -8,6 +8,7 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant; import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType; import com.glxp.api.constant.ConstantType;
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.UdiEntity; import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inout.*;
@ -16,6 +17,7 @@ import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.res.inout.IoOrderCheckResultResponse; import com.glxp.api.res.inout.IoOrderCheckResultResponse;
import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inv.InvPreinOrderService; import com.glxp.api.service.inv.InvPreinOrderService;
@ -728,6 +730,7 @@ public class IoCheckInoutService {
orderEntity.setUpdateTime(new Date()); orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date()); orderEntity.setAuditTime(new Date());
orderService.update(orderEntity); orderService.update(orderEntity);
List<IoCodeEntity> codeEntities = codeService.findByOrderId(orderEntity.getBillNo());
genInv(orderEntity, bussinessTypeEntity); genInv(orderEntity, bussinessTypeEntity);
} }
} }
@ -743,76 +746,75 @@ public class IoCheckInoutService {
public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) {
if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT) && bussinessTypeEntity.isScanPreIn()) { if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT) && bussinessTypeEntity.isScanPreIn()) {
ThreadUtil.execAsync(() -> { // ThreadUtil.execAsync(() -> {
if (StrUtil.isNotEmpty(bussinessTypeEntity.getPreInBackAction())) { if (StrUtil.isNotEmpty(bussinessTypeEntity.getPreInBackAction())) {
if (bussinessTypeEntity.getBackPreinType() == 1) { //按单退货 if (bussinessTypeEntity.getBackPreinType() == 1) { //按单退货
String orderIds = bussinessTypeEntity.getCheckPreInOrders(); String orderIds = orderEntity.getCheckPreInOrders();
if (StrUtil.isNotEmpty(orderIds)) { if (StrUtil.isNotEmpty(orderIds)) {
String[] orderIdArray = StringUtils.split(","); String[] orderIdArray = orderIds.split(",");
List<String> orderList = CollUtil.toList(orderIdArray); List<String> orderList = CollUtil.toList(orderIdArray);
List<IoCodeEntity> outCodeEntitys = codeService.findByOrderId(orderEntity.getBillNo()); List<IoCodeEntity> outCodeEntitys = codeService.findByOrderId(orderEntity.getBillNo());
List<IoCodeEntity> preInCodeEntities = codeService.findByOrderIds(orderList, null); List<IoCodeEntity> preInCodeEntities = codeService.findByOrderIds(orderList, null);
// 扣减数量 // 扣减数量
for (IoCodeEntity preInCodeEntity : preInCodeEntities) { for (IoCodeEntity preInCodeEntity : preInCodeEntities) {
for (IoCodeEntity codeEntity : outCodeEntitys) { for (IoCodeEntity codeEntity : outCodeEntitys) {
if (preInCodeEntity.getCode().equals(codeEntity.getCode())) { if (preInCodeEntity.getCode().equals(codeEntity.getCode())) {
int count = preInCodeEntity.getMyCount() - codeEntity.getMyCount(); int count = preInCodeEntity.getMyCount() - codeEntity.getMyCount();
int reCount = preInCodeEntity.getMyReCount() - codeEntity.getMyReCount(); int reCount = preInCodeEntity.getMyReCount() - codeEntity.getMyReCount();
if (count > 0) { if (count > 0) {
preInCodeEntity.setCount(count); preInCodeEntity.setCount(count);
preInCodeEntity.setReCount(reCount); preInCodeEntity.setReCount(reCount);
codeEntity.setCount(0); codeEntity.setCount(0);
codeEntity.setReCount(0); codeEntity.setReCount(0);
} else if (count < 0) { } else if (count < 0) {
preInCodeEntity.setCount(0); preInCodeEntity.setCount(0);
preInCodeEntity.setReCount(0); preInCodeEntity.setReCount(0);
codeEntity.setCount(-count); codeEntity.setCount(-count);
codeEntity.setReCount(-reCount); codeEntity.setReCount(-reCount);
} else { } else {
preInCodeEntity.setCount(0); preInCodeEntity.setCount(0);
preInCodeEntity.setReCount(0); preInCodeEntity.setReCount(0);
codeEntity.setCount(0); codeEntity.setCount(0);
codeEntity.setReCount(0); codeEntity.setReCount(0);
}
} }
} }
} }
List<IoCodeEntity> backCodeList = new ArrayList<>();
for (IoCodeEntity codeEntity : preInCodeEntities) {
if (codeEntity.getMyCount() > 0) {
backCodeList.add(codeEntity);
}
}
genBackOrder(orderEntity, backCodeList);
} }
} else { //按仓库货位退货
List<IoCodeEntity> backCodeList = new ArrayList<>(); List<IoCodeEntity> backCodeList = new ArrayList<>();
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo()); for (IoCodeEntity codeEntity : preInCodeEntities) {
for (IoCodeEntity codeEntity : codeList) { if (codeEntity.getMyCount() > 0) {
int count = invPreinProductDetailService.findCountByCode(codeEntity.getCode());
if (count > 0) {
codeEntity.setCount(count);
codeEntity.setReCount(udiCalCountUtil.getActCount(codeEntity.getNameCode()));
backCodeList.add(codeEntity); backCodeList.add(codeEntity);
genBackOrder(orderEntity, backCodeList);
} }
} }
genBackOrder(orderEntity, backCodeList);
}
} else { //按仓库货位退货
List<IoCodeEntity> backCodeList = new ArrayList<>();
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo());
for (IoCodeEntity codeEntity : codeList) {
int count = invPreinProductDetailService.findCountByCode(codeEntity.getCode());
if (count > 0) {
codeEntity.setCount(count);
codeEntity.setReCount(udiCalCountUtil.getActCount(codeEntity.getNameCode()));
backCodeList.add(codeEntity);
genBackOrder(orderEntity, backCodeList);
}
} }
} }
}); }
// });
} }
//校验是否是不入库存单据 //校验是否是不入库存单据
if (bussinessTypeEntity.isInStock()) { if (bussinessTypeEntity.isInStock()) {
//生成库存 //生成库存
@ -829,6 +831,8 @@ public class IoCheckInoutService {
} }
} }
@Resource
InvWarehouseService invWarehouseService;
public void genBackOrder(IoOrderEntity orderEntity, List<IoCodeEntity> backCodeList) { public void genBackOrder(IoOrderEntity orderEntity, List<IoCodeEntity> backCodeList) {
if (CollUtil.isEmpty(backCodeList)) if (CollUtil.isEmpty(backCodeList))
@ -836,9 +840,14 @@ public class IoCheckInoutService {
BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
if (StrUtil.isNotEmpty(basicBussinessTypeEntity.getPreInBackAction())) { if (StrUtil.isNotEmpty(basicBussinessTypeEntity.getPreInBackAction())) {
IoOrderEntity outOrder = new IoOrderEntity(); IoOrderEntity outOrder = new IoOrderEntity();
IoCodeEntity codeEntity = backCodeList.get(0);
outOrder.setId(null); outOrder.setId(null);
outOrder.setMainAction(ConstantType.TYPE_OUT); outOrder.setMainAction(ConstantType.TYPE_OUT);
outOrder.setAction(basicBussinessTypeEntity.getAction()); outOrder.setAction(basicBussinessTypeEntity.getPreInBackAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(Constant.INV_PRE_IN_CODE);
outOrder.setInvCode(invWarehouseEntity.getCode());
outOrder.setDeptCode(invWarehouseEntity.getParentId());
outOrder.setFromCorp(codeEntity.getSupId());
outOrder.setCreateTime(new Date()); outOrder.setCreateTime(new Date());
outOrder.setFromType(ConstantStatus.FROM_BACK); outOrder.setFromType(ConstantStatus.FROM_BACK);
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(basicBussinessTypeEntity.getPrefix()), "yyyyMMdd")); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(basicBussinessTypeEntity.getPrefix()), "yyyyMMdd"));

@ -3,7 +3,7 @@ server:
spring: spring:
datasource: datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_spms_wyp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_spms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root username: root
password: 123456 password: 123456
hikari: hikari:

@ -3,33 +3,32 @@
<mapper namespace="com.glxp.api.dao.inv.InvPreinProductDao"> <mapper namespace="com.glxp.api.dao.inv.InvPreinProductDao">
<select id="filterList" resultType="com.glxp.api.res.inv.InvPreinProductResponse"> <select id="filterList" resultType="com.glxp.api.res.inv.InvPreinProductResponse">
select ipp.id, select ipp.id,
ipp.nameCode, ipp.nameCode,
bp.cpmctymc, bp.cpmctymc,
ipp.relIdFk, ipp.relIdFk,
bp.ggxh, bp.ggxh,
ipp.batchNo, ipp.batchNo,
ipp.productionDate, ipp.productionDate,
ipp.expireDate, ipp.expireDate,
bp.ylqxzcrbarmc, bp.ylqxzcrbarmc,
bp.zczbhhzbapzbh, bp.zczbhhzbapzbh,
ipp.inCount, ipp.inCount,
ipp.outCount, ipp.outCount,
ipp.reCount, ipp.reCount,
ipp.customerId, ipp.customerId,
basic_corp.name supName, basic_corp.name supName,
ipp.supId, ipp.supId,
auth_dept.name deptName, auth_dept.name deptName,
auth_warehouse.name invName, auth_warehouse.name invName,
ipp.deptCode, ipp.deptCode,
ipp.invCode ipp.invCode
from inv_prein_product ipp from inv_prein_product ipp
inner join basic_udirel on ipp.relIdFk = basic_udirel.id inner join basic_udirel on ipp.relIdFk = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid inner join basic_products bp on basic_udirel.uuid = bp.uuid
left join basic_corp on ipp.supId = basic_corp.erpId left join basic_corp on ipp.supId = basic_corp.erpId
left join auth_dept on auth_dept.code = ipp.deptCode left join auth_dept on auth_dept.code = ipp.deptCode
left join auth_warehouse on auth_warehouse.code = ipp.invCode left join auth_warehouse on auth_warehouse.code = ipp.invCode
<where> <where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''"> <if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%') AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if> </if>
@ -81,11 +80,11 @@
<select id="filterPreProductList" resultType="com.glxp.api.entity.inv.InvPreinProductEntity"> <select id="filterPreProductList" resultType="com.glxp.api.entity.inv.InvPreinProductEntity">
select ipp.* select ipp.*
from inv_prein_product ipp from inv_prein_product ipp
inner join basic_udirel on ipp.relIdFk = basic_udirel.id inner join basic_udirel on ipp.relIdFk = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid inner join basic_products bp on basic_udirel.uuid = bp.uuid
left join basic_corp on ipp.supId = basic_corp.erpId left join basic_corp on ipp.supId = basic_corp.erpId
left join auth_dept on auth_dept.code = ipp.deptCode left join auth_dept on auth_dept.code = ipp.deptCode
left join auth_warehouse on auth_warehouse.code = ipp.invCode left join auth_warehouse on auth_warehouse.code = ipp.invCode
<where> <where>
bp.diType = 1 bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''"> <if test="cpmctymc != null and cpmctymc != ''">

@ -69,7 +69,7 @@ CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkExpire', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkCertExpire', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkCertExpire', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'preInBackAction', 'varchar(255) ', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'preInBackAction', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'backPreinType', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'backPreinType', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkPreInOrders', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('io_order', 'checkPreInOrders', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'sortNum', 'int', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'sortNum', 'int', 1);

Loading…
Cancel
Save