新增单据->库存流程走通

master
anthonywj 2 years ago
parent b8aeb30de5
commit 01d818b715

@ -47,6 +47,12 @@ public class ConstantStatus {
*/ */
public static final Integer ORDER_STATUS_AUDITED_REFUSED = 8; public static final Integer ORDER_STATUS_AUDITED_REFUSED = 8;
/**
*
*/
public static final Integer ORDER_STATUS_PROCESSING = 9;
public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据
// public static final Integer ORDER_STATUS_RECEIVEED = 7; // public static final Integer ORDER_STATUS_RECEIVEED = 7;

@ -24,4 +24,13 @@ public interface IoOrderDao extends BaseMapperPlus<IoOrderDao, IoOrderEntity, Io
* @return * @return
*/ */
List<IoOrderEntity> filterOrderList(FilterOrderRequest filterOrderRequest); List<IoOrderEntity> filterOrderList(FilterOrderRequest filterOrderRequest);
/**
*
*
* @return
*/
List<IoOrderEntity> selectSupplementOrderList();
} }

@ -11,7 +11,7 @@ import java.math.BigDecimal;
@Data @Data
@TableName(value = "io_order_detail_biz") @TableName(value = "io_order_detail_biz")
public class IoOrderDetailBizEntity { public class IoOrderDetailBizEntity {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
/** /**

@ -11,7 +11,7 @@ import java.math.BigDecimal;
@Data @Data
@TableName(value = "io_order_detail_code") @TableName(value = "io_order_detail_code")
public class IoOrderDetailCodeEntity { public class IoOrderDetailCodeEntity {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
/** /**

@ -11,7 +11,7 @@ import java.math.BigDecimal;
@Data @Data
@TableName(value = "io_order_detail_result") @TableName(value = "io_order_detail_result")
public class IoOrderDetailResultEntity { public class IoOrderDetailResultEntity {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
/** /**

@ -11,7 +11,7 @@ import java.util.Date;
@Data @Data
@TableName(value = "inv_product_detail") @TableName(value = "inv_product_detail")
public class InvProductDetailEntity { public class InvProductDetailEntity {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.AUTO)
private Integer id; private Integer id;
/** /**

@ -113,4 +113,6 @@ public class FilterOrderRequest extends ListPageRequest {
*/ */
private String invCode; private String invCode;
private String igNoreBillNo;
} }

@ -201,6 +201,10 @@ public class IoOrderResponse {
private String fromName; private String fromName;
//是否可以补单
private boolean enableSupplementOrder;
public String getFromName() { public String getFromName() {
if (StrUtil.isNotEmpty(fromCorpName)) if (StrUtil.isNotEmpty(fromCorpName))

@ -22,6 +22,8 @@ public interface UdiRlSupService {
UdiRlSupEntity findByUdiRlIdUnitFk(String udiRlIdFk, String unitFk); UdiRlSupEntity findByUdiRlIdUnitFk(String udiRlIdFk, String unitFk);
List<UdiRlSupEntity> findByUdiRlId(String udiRlIdFk);
UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity); UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity);
List<UdiRlSupEntity> getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest); List<UdiRlSupEntity> getCompanyProductRelevance(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest);

@ -83,6 +83,14 @@ public class UdiRlSupServiceImpl implements UdiRlSupService {
return null; return null;
} }
@Override
public List<UdiRlSupEntity> findByUdiRlId(String udiRlIdFk) {
FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest();
filterCompanyProductRelevanceRequest.setUdiRlIdFk(udiRlIdFk);
List<UdiRlSupEntity> companyProductRelevanceEntities = udiRlSupDao.filterCompanyProductRelevance(filterCompanyProductRelevanceRequest);
return companyProductRelevanceEntities;
}
@Override @Override
public UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity) { public UdiRlSupEntity findCompanyProductRelevanceByProductUuid(UdiRlSupEntity udiRlSupEntity) {
return udiRlSupDao.findCompanyProductRelevanceByProductUuid(udiRlSupEntity); return udiRlSupDao.findCompanyProductRelevanceByProductUuid(udiRlSupEntity);

@ -1,30 +1,47 @@
package com.glxp.api.service.inout; package com.glxp.api.service.inout;
import cn.hutool.core.bean.BeanUtil;
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.glxp.api.common.enums.ResultEnum;
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.Constant;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiRlSupEntity; import com.glxp.api.entity.basic.UdiRlSupEntity;
import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoCodeTempEntity;
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.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inout.PdaCodeEntity; import com.glxp.api.req.inout.PdaCodeEntity;
import com.glxp.api.req.inout.PostOrderRequest; import com.glxp.api.req.inout.PostOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.BasicCorpService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.UdiRlSupService; import com.glxp.api.service.basic.UdiRlSupService;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil; import com.glxp.api.util.DateUtil;
import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.OrderNoTypeBean;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
@Service @Service
@ -39,11 +56,266 @@ public class IoAddInoutService {
@Resource @Resource
IoCodeService codeService; IoCodeService codeService;
@Resource @Resource
IoCodeTempService codeTempService;
@Resource
UdiRlSupService udiRlSupService; UdiRlSupService udiRlSupService;
@Resource @Resource
IoOrderDetailCodeService orderDetailCodeService; IoOrderDetailCodeService orderDetailCodeService;
@Resource @Resource
UdiRelevanceService udiRelevanceService; UdiRelevanceService udiRelevanceService;
@Resource
InvProductDetailService invProductDetailService;
@Resource
BasicCorpService basicCorpService;
@Resource
IoCheckInoutService ioCheckInoutService;
@Resource
SystemParamConfigService systemParamConfigService;
//新增单据处理
public void dealProcess(IoOrderEntity orderEntity) {
orderEntity.setRemark("正在处理!");
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESSING);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
List<IoOrderEntity> orderEntities = orderService.isExitRepeat(orderEntity.getCorpOrderId(), orderEntity.getBillNo());
if (CollUtil.isNotEmpty(orderEntities)) {
orderEntity.setRemark("单据重复上传");
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
return;
}
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
if (bussinessTypeEntity == null) {
orderEntity.setRemark("单据类型不存在");
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
return;
}
if (StrUtil.isEmpty(orderEntity.getFromCorp()) && StrUtil.isEmpty(orderEntity.getFromInvCode())) {
orderEntity.setRemark("未选择往来单位");
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
return;
} else if (StrUtil.isNotEmpty(orderEntity.getFromCorp())) {
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) {
BasicCorpEntity basicCorpEntity = basicCorpService.selectByName(orderEntity.getFromCorp());
if (basicCorpEntity == null) {
basicCorpEntity = new BasicCorpEntity();
basicCorpEntity.setErpId(CustomUtil.getUnitId());
basicCorpEntity.setCorpType(ConstantStatus.CORP_SICK);
basicCorpEntity.setOutType(ConstantStatus.CORP_SICK_SICK);
basicCorpEntity.setName(orderEntity.getFromCorp());
}
orderEntity.setFromCorp(basicCorpEntity.getErpId());
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
basicCorpService.insertBasicUnitMaintain(basicCorpEntity);
}
}
if (StrUtil.isEmpty(orderEntity.getInvCode())) {
orderEntity.setRemark("未选择当前仓库信息");
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
return;
}
List<IoCodeTempEntity> filterList = codeTempService.findByOrderId(orderEntity.getBillNo());
List<IoCodeTempEntity> insertList = new ArrayList<>();
for (int j = 0; j < filterList.size(); j++) {
IoCodeTempEntity warehouseEntity = filterList.get(j);
String result = checkOrderRepeatCode(warehouseEntity, filterList);
if (result == null) {
insertList.add(warehouseEntity);
} else {
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
insertList.clear();
return;
}
//三期校验
String checkOriginMsg = checkOriginCode(warehouseEntity);
if (StrUtil.isNotEmpty(checkOriginMsg)) {
orderEntity.setRemark("checkOriginMsg");
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
insertList.clear();
return;
}
//产品是否已维护已关联
if ((warehouseEntity.getRelId() == null)) {
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderEntity.setRemark("udi码" + warehouseEntity.getCode() + "上传时对照数据丢失,请选择对!");
orderService.update(orderEntity);
return;
}
//产品是否指定供应商
if (StrUtil.isEmpty(warehouseEntity.getSupId())) {
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderEntity.setRemark("udi码" + warehouseEntity.getCode() + "未指定供应商!");
orderService.update(orderEntity);
return;
}
//校验是否是当前供应商
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
UdiRlSupEntity udiRlSupEntity = udiRlSupService.findByUdiRlIdUnitFk(warehouseEntity.getRelId() + "", orderEntity.getFromCorp());
if (udiRlSupEntity == null) {
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderEntity.setRemark("udi码" + warehouseEntity.getCode() + "当前供应商不存在此配送产品");
orderService.update(orderEntity);
return;
}
}
//产品是否可以以使用单元入库
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(warehouseEntity.getRelId());
if (udiRelevanceResponse == null) {
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderEntity.setRemark("udi码" + warehouseEntity.getCode() + "该产品信息未维护");
orderService.update(orderEntity);
return;
} else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) {
orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR);
orderEntity.setUpdateTime(new Date());
orderEntity.setRemark("udi码" + warehouseEntity.getCode() + "该产品不允许以使用单元入库");
orderService.update(orderEntity);
return;
}
}
if (CollUtil.isNotEmpty(insertList)) {
//临时表转正式表
List<IoCodeEntity> ioCodeEntities = new ArrayList<>();
for (IoCodeTempEntity codeTempEntity : insertList) {
IoCodeEntity codeEntity = new IoCodeEntity();
BeanUtils.copyProperties(codeTempEntity, codeEntity);
ioCodeEntities.add(codeEntity);
}
codeService.insertBatch(ioCodeEntities);
//生成扫码单据详情
if (!orderDetailCodeService.isExit(orderEntity.getBillNo())) {
for (IoCodeTempEntity codeTempEntity : insertList) {
genOrderDetailCode(orderEntity, codeTempEntity);
}
}
codeTempService.deleteByBillNo(orderEntity.getBillNo());
//进行单据校验
ioCheckInoutService.check(orderEntity.getBillNo());
}
}
//生成扫码单据详情
public void genOrderDetailCode(IoOrderEntity orderEntity, IoCodeTempEntity codeTempEntity) {
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId());
if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) {
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse));
} else {
ioOrderDetailCodeEntities.forEach(orderDetailCodeEntity ->
{
if (orderDetailCodeEntity.getBindRlFk().longValue() == udiRelevanceResponse.getId().longValue() && orderDetailCodeEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) {
orderDetailCodeEntity.setCount(orderDetailCodeEntity.getCount() + codeTempEntity.getCount());
orderDetailCodeEntity.setReCount(orderDetailCodeEntity.getReCount() + codeTempEntity.getReCount());
orderDetailCodeService.update(orderDetailCodeEntity);
} else {
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse));
}
});
}
}
//平衡补单
public BaseResponse supplementOrder(String orderId) {
IoOrderEntity order = orderService.findByBillNo(orderId);
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(order.getAction());
if (StrUtil.isBlank(bussinessTypeEntity.getSupplementOrderType())) {
return ResultVOUtils.error(ResultEnum.valueOf("此类型单据不可补单"));
}
IoOrderEntity supplementOrder = new IoOrderEntity();
BeanUtil.copyProperties(order, supplementOrder);
//生成补单单号,互填单号
String supplementOrderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
supplementOrder.setSupplementNo(orderId);
order.setSupplementNo(supplementOrderNo);
supplementOrder.setBillNo(supplementOrderNo);
supplementOrder.setCorpOrderId(CustomUtil.getId() + "x");
//修改状态
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit");
if ("1".equals(systemParamConfigEntity.getParamValue())) {
supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); //设置状态为补录单据
} else {
supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); //设置状态为补录单据
}
//交换往来信息
supplementOrder.setFromDeptCode(order.getDeptCode());
supplementOrder.setFromInvCode(order.getInvCode());
supplementOrder.setInvCode(order.getFromInvCode());
supplementOrder.setDeptCode(order.getFromDeptCode());
supplementOrder.setFromType(ConstantStatus.FROM_PEACE_CHANGE);
//设置往来信息
BasicBussinessTypeEntity supplementType = basicBussinessTypeService.findByAction(bussinessTypeEntity.getSupplementOrderType());
supplementOrder.setMainAction(supplementType.getMainAction());
supplementOrder.setAction(supplementType.getAction());
//复制码表
List<IoCodeEntity> codes = codeService.findByOrderId(orderId);
List<IoCodeTempEntity> supplementCodes = new ArrayList<>();
codes.forEach(
code -> {
IoCodeTempEntity supplementCode = new IoCodeTempEntity();
BeanUtil.copyProperties(code, supplementCode);
supplementCode.setId(null);
supplementCode.setInvCode(order.getFromInvCode());
supplementCode.setDeptCode(order.getFromDeptCode());
supplementCode.setOrderId(supplementOrderNo);
supplementCode.setAction(supplementType.getAction());
supplementCode.setMainAction(supplementType.getMainAction());
supplementCodes.add(supplementCode);
}
);
//更新数据
orderService.insertOrder(supplementOrder);
orderService.update(order);
codeTempService.insertBatch(supplementCodes);
dealProcess(supplementOrder);
return ResultVOUtils.success();
}
//手持终端上传生成扫码单据 //手持终端上传生成扫码单据
public void creatOrderByPda(PostOrderRequest postOrderRequest) { public void creatOrderByPda(PostOrderRequest postOrderRequest) {
@ -196,28 +468,62 @@ public class IoAddInoutService {
return null; return null;
} }
//查询本单是否有重复条码
public String checkOrderRepeatCode(IoCodeTempEntity codeEntity, List<IoCodeTempEntity> filterList) {
int count = 0;
if (filterList != null) {
for (IoCodeTempEntity temp : filterList) {
if (temp.getCode().equals(codeEntity.getCode())) {
count = count + 1;
}
}
}
if (count > 1) {
return codeEntity.getCode() + "条码重复";
} else
return null;
}
//生成扫码单据详情 public String checkOriginCode(IoCodeTempEntity warehouseEntity) {
public void genOrderDetailCode(IoOrderEntity orderEntity, IoCodeTempEntity codeTempEntity) {
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); UdiEntity udiEntity = FilterUdiUtils.getUdi(warehouseEntity.getCode());
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId()); //校验条码的完整性
if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) { String errMsg = "";
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse)); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
} else { if (udiRelevanceResponse == null) {
ioOrderDetailCodeEntities.forEach(orderDetailCodeEntity -> return "耗材字典不存在此产品";
{
if (orderDetailCodeEntity.getBindRlFk().longValue() == udiRelevanceResponse.getId().longValue() && orderDetailCodeEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) {
orderDetailCodeEntity.setCount(orderDetailCodeEntity.getCount() + codeTempEntity.getCount());
orderDetailCodeEntity.setReCount(orderDetailCodeEntity.getReCount() + codeTempEntity.getReCount());
orderDetailCodeService.update(orderDetailCodeEntity);
} else {
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse));
} }
}); InvProductDetailEntity invProductDetailEntity = invProductDetailService.sortFindByCode(warehouseEntity.getCode());
if (invProductDetailEntity != null) {
if (StrUtil.isEmpty(warehouseEntity.getBatchNo())) {
warehouseEntity.setBatchNo(invProductDetailEntity.getBatchNo());
}
if (StrUtil.isEmpty(warehouseEntity.getProduceDate())) {
warehouseEntity.setProduceDate(invProductDetailEntity.getProduceDate());
}
if (StrUtil.isEmpty(warehouseEntity.getExpireDate())) {
warehouseEntity.setExpireDate(invProductDetailEntity.getExpireDate());
}
}
if (StrUtil.isEmpty(warehouseEntity.getBatchNo()) && !udiRelevanceResponse.getAllowNoBatch()) {
errMsg = errMsg + ",批次号";
} }
if (StrUtil.isEmpty(warehouseEntity.getProduceDate()) && !udiRelevanceResponse.getAllowNoProduct()) {
errMsg = errMsg + ",生产日期";
}
if (StrUtil.isEmpty(warehouseEntity.getExpireDate()) && !udiRelevanceResponse.getAllowNoExpire()) {
errMsg = errMsg + ",失效日期";
} }
if (StrUtil.isNotEmpty(errMsg)) {
return "UDI码" + warehouseEntity.getCode() + "产品三期缺失请补齐" + errMsg.substring(1) + "";
}
return null;
}
IoOrderDetailCodeEntity buildEntity(IoOrderEntity orderEntity, IoCodeTempEntity codeTempEntity, UdiRelevanceResponse udiRelevanceResponse) { IoOrderDetailCodeEntity buildEntity(IoOrderEntity orderEntity, IoCodeTempEntity codeTempEntity, UdiRelevanceResponse udiRelevanceResponse) {
IoOrderDetailCodeEntity ioOrderDetailCodeEntity = new IoOrderDetailCodeEntity(); IoOrderDetailCodeEntity ioOrderDetailCodeEntity = new IoOrderDetailCodeEntity();
ioOrderDetailCodeEntity.setOrderIdFk(orderEntity.getBillNo()); ioOrderDetailCodeEntity.setOrderIdFk(orderEntity.getBillNo());
@ -240,4 +546,5 @@ public class IoAddInoutService {
return ioOrderDetailCodeEntity; return ioOrderDetailCodeEntity;
} }
} }

@ -137,12 +137,14 @@ public class IoCheckInoutService {
//生成业务单据 //生成业务单据
IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity();
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity);
orderDetailBizEntity.setId(null);
orderDetailBizService.insert(orderDetailBizEntity); orderDetailBizService.insert(orderDetailBizEntity);
//生成单据结果 //生成单据结果
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity(); IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity); BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity);
orderDetailResultEntity.setId(null);
orderDetailResultService.insert(orderDetailResultEntity); orderDetailResultService.insert(orderDetailResultEntity);
}); });
@ -152,6 +154,7 @@ public class IoCheckInoutService {
for (IoCodeTempEntity codeTempEntity : codeTempEntities) { for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
IoCodeEntity codeEnttity = new IoCodeEntity(); IoCodeEntity codeEnttity = new IoCodeEntity();
BeanUtils.copyProperties(codeTempEntity, codeEnttity); BeanUtils.copyProperties(codeTempEntity, codeEnttity);
codeEnttity.setId(null);
codeService.insert(codeEnttity); codeService.insert(codeEnttity);
} }
codeTempService.deleteByBillNo(orderEntity.getBillNo()); codeTempService.deleteByBillNo(orderEntity.getBillNo());
@ -168,7 +171,7 @@ public class IoCheckInoutService {
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo()); List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo());
if (CollUtil.isEmpty(orderDetailCodeEntities)) { if (CollUtil.isEmpty(orderDetailCodeEntities)) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_FAIL); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
orderEntity.setUpdateTime(new Date()); orderEntity.setUpdateTime(new Date());
orderEntity.setErrMsg("校验失败,扫码详情为空!"); orderEntity.setErrMsg("校验失败,扫码详情为空!");
orderService.update(orderEntity); orderService.update(orderEntity);
@ -176,12 +179,13 @@ public class IoCheckInoutService {
} }
if (CollUtil.isEmpty(orderDetailBizEntities)) { if (CollUtil.isEmpty(orderDetailBizEntities)) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_FAIL); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
orderEntity.setUpdateTime(new Date()); orderEntity.setUpdateTime(new Date());
orderEntity.setErrMsg("校验失败,业务详情为空!"); orderEntity.setErrMsg("校验失败,业务详情为空!");
orderService.update(orderEntity); orderService.update(orderEntity);
return; return;
} }
String errMsg = ""; String errMsg = "";
//正向校验 //正向校验
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
@ -242,6 +246,7 @@ public class IoCheckInoutService {
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity(); IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
BeanUtils.copyProperties(orderDetailBizEntity, orderDetailResultEntity); BeanUtils.copyProperties(orderDetailBizEntity, orderDetailResultEntity);
orderDetailResultEntity.setId(null);
orderDetailResultEntity.setReCount(orderDetailBizEntity.getScanCount()); orderDetailResultEntity.setReCount(orderDetailBizEntity.getScanCount());
orderDetailResultService.insert(orderDetailResultEntity); orderDetailResultService.insert(orderDetailResultEntity);
} }

@ -140,6 +140,7 @@ public class IoGenInvService {
{ {
InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity(); InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity();
BeanUtils.copyProperties(codeEntity, invPreinDetailEntity); BeanUtils.copyProperties(codeEntity, invPreinDetailEntity);
invPreinDetailEntity.setId(null);
invPreinDetailEntities.add(invPreinDetailEntity); invPreinDetailEntities.add(invPreinDetailEntity);
}); });
@ -235,9 +236,13 @@ public class IoGenInvService {
if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
outOrder.setCustomerId(corpName); outOrder.setCustomerId(corpName);
outOrder.setFromCorp(corpName); outOrder.setFromCorp(corpName);
outOrder.setFromInvCode(null);
outOrder.setFromDeptCode(null);
} else { } else {
outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID);
outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode()); outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode());
outOrder.setFromDeptCode(bussinessChangeTypeEntity.getDefaultDeptCode());
outOrder.setFromCorp(null);
} }
outOrder.setCorpOrderId(CustomUtil.getId() + "x"); outOrder.setCorpOrderId(CustomUtil.getId() + "x");
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode()); InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode());
@ -262,16 +267,20 @@ public class IoGenInvService {
for (IoCodeEntity warehouseEntity : temps) { for (IoCodeEntity warehouseEntity : temps) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
BeanUtils.copyProperties(warehouseEntity, codeTempEntity); BeanUtils.copyProperties(warehouseEntity, codeTempEntity);
codeTempEntity.setOrderId(outOrder.getBillNo());
codeTempEntity.setId(null); codeTempEntity.setId(null);
codeTempEntity.setOrderId(outOrder.getBillNo());
codeTempEntity.setAction(outOrder.getAction()); codeTempEntity.setAction(outOrder.getAction());
codeTempEntity.setMainAction(outOrder.getMainAction()); codeTempEntity.setMainAction(outOrder.getMainAction());
codeTempEntities.add(codeTempEntity); codeTempEntities.add(codeTempEntity);
} }
codeTempService.insertBatch(codeTempEntities); codeTempService.insertBatch(codeTempEntities);
addInoutService.dealProcess(outOrder);
} }
} }
@Resource
IoAddInoutService addInoutService;
//计算当前库存数量 //计算当前库存数量
public int getInvCount(IoCodeEntity codeEntity) { public int getInvCount(IoCodeEntity codeEntity) {

@ -37,4 +37,6 @@ public interface IoOrderDetailCodeService {
int deleteByOrderId(String orderId); int deleteByOrderId(String orderId);
public List<IoOrderDetailCodeEntity> checkOrderList(String orderId); public List<IoOrderDetailCodeEntity> checkOrderList(String orderId);
boolean isExit(String orderId);
} }

@ -11,6 +11,10 @@ public interface IoOrderService {
List<IoOrderEntity> selectAll(); List<IoOrderEntity> selectAll();
List<IoOrderEntity> findAll(FilterOrderRequest filterOrderRequest);
List<IoOrderEntity> isExitRepeat(String corpOrderId, String billNo);
IoOrderEntity findById(String orderId); IoOrderEntity findById(String orderId);
IoOrderEntity findByBillNo(String billNO); IoOrderEntity findByBillNo(String billNO);
@ -42,4 +46,12 @@ public interface IoOrderService {
* @return * @return
*/ */
List<IoOrderEntity> filterOrderList(FilterOrderRequest filterOrderRequest); List<IoOrderEntity> filterOrderList(FilterOrderRequest filterOrderRequest);
List<IoOrderEntity> selectSupplementOrderList();
/**
*
*/
List<IoOrderResponse> checkSupplementOrder(List<IoOrderEntity> orderEntities);
} }

@ -25,6 +25,7 @@ public class IoCodeServiceImpl implements IoCodeService {
@Override @Override
public int insert(IoCodeEntity codeEnttity) { public int insert(IoCodeEntity codeEnttity) {
codeEnttity.setId(null);
return ioCodeDao.insert(codeEnttity); return ioCodeDao.insert(codeEnttity);
} }

@ -28,6 +28,7 @@ public class IoCodeTempServiceImpl implements IoCodeTempService {
@Override @Override
public int insert(IoCodeTempEntity codeEnttity) { public int insert(IoCodeTempEntity codeEnttity) {
codeEnttity.setId(null);
return ioCodeTempDao.insert(codeEnttity); return ioCodeTempDao.insert(codeEnttity);
} }

@ -29,6 +29,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
@Override @Override
public int insert(IoOrderDetailBizEntity orderDetailBizEntity) { public int insert(IoOrderDetailBizEntity orderDetailBizEntity) {
orderDetailBizEntity.setId(null);
return ioOrderDetailBizDao.insert(orderDetailBizEntity); return ioOrderDetailBizDao.insert(orderDetailBizEntity);
} }

@ -25,6 +25,10 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService {
@Resource @Resource
IoOrderDetailCodeDao ioOrderDetailCodeDao; IoOrderDetailCodeDao ioOrderDetailCodeDao;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
IoCheckInoutService checkInoutService;
@Override @Override
public List<IoOrderDetailCodeEntity> findByOrderId(String orderId) { public List<IoOrderDetailCodeEntity> findByOrderId(String orderId) {
@ -38,6 +42,7 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService {
@Override @Override
public int insert(IoOrderDetailCodeEntity orderDetailCodeEntity) { public int insert(IoOrderDetailCodeEntity orderDetailCodeEntity) {
orderDetailCodeEntity.setId(null);
return ioOrderDetailCodeDao.insert(orderDetailCodeEntity); return ioOrderDetailCodeDao.insert(orderDetailCodeEntity);
} }
@ -68,11 +73,6 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService {
} }
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
IoCheckInoutService checkInoutService;
@Override @Override
public List<IoOrderDetailCodeEntity> checkOrderList(String orderId) { public List<IoOrderDetailCodeEntity> checkOrderList(String orderId) {
@ -81,4 +81,9 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService {
checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities);
return orderDetailCodeEntities; return orderDetailCodeEntities;
} }
@Override
public boolean isExit(String orderId) {
return ioOrderDetailCodeDao.exists(new QueryWrapper<IoOrderDetailCodeEntity>().eq("orderIdFk", orderId));
}
} }

@ -26,6 +26,7 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
@Override @Override
public int insert(IoOrderDetailResultEntity orderDetailResultEntity) { public int insert(IoOrderDetailResultEntity orderDetailResultEntity) {
orderDetailResultEntity.setId(null);
return orderDetailResultDao.insert(orderDetailResultEntity); return orderDetailResultDao.insert(orderDetailResultEntity);
} }

@ -1,8 +1,16 @@
package com.glxp.api.service.inout.impl; package com.glxp.api.service.inout.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.constant.ConstantStatus;
import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.dao.inout.IoOrderDao; import com.glxp.api.dao.inout.IoOrderDao;
import com.glxp.api.entity.auth.SysDictData;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.IoOrderResponse;
@ -10,6 +18,7 @@ import com.glxp.api.service.inout.IoOrderService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -24,6 +33,30 @@ public class IoOrderServiceImpl implements IoOrderService {
return orderDao.selectList(); return orderDao.selectList();
} }
@Override
public List<IoOrderEntity> findAll(FilterOrderRequest filterOrderRequest) {
QueryWrapper<IoOrderEntity> queryWrapper = new QueryWrapper<IoOrderEntity>()
.eq(StrUtil.isNotEmpty(filterOrderRequest.getCustomerId()), "customerId", filterOrderRequest.getCustomerId())
.eq(StrUtil.isNotBlank(filterOrderRequest.getCorpOrderId()), "corpOrderId", filterOrderRequest.getCorpOrderId())
.eq(StrUtil.isNotBlank(filterOrderRequest.getBillNo()), "billNo", filterOrderRequest.getBillNo())
.ne(StrUtil.isNotEmpty(filterOrderRequest.getIgNoreBillNo()), "billNo", filterOrderRequest.getIgNoreBillNo());
return orderDao.selectList(queryWrapper);
}
@Override
public List<IoOrderEntity> isExitRepeat(String corpOrderId, String billNo) {
List<Integer> filterStatus = new ArrayList<>();
filterStatus.add(ConstantStatus.ORDER_DEAL_POST);
filterStatus.add(ConstantStatus.ORDER_DEAL_CHECK);
return orderDao.selectList(new QueryWrapper<IoOrderEntity>()
.eq("corpOrderId", corpOrderId)
.ne("billNo", billNo)
.in("dealStatus", filterStatus)
);
}
@Override @Override
public IoOrderEntity findById(String orderId) { public IoOrderEntity findById(String orderId) {
return orderDao.selectById(orderId); return orderDao.selectById(orderId);
@ -36,6 +69,7 @@ public class IoOrderServiceImpl implements IoOrderService {
@Override @Override
public int insertOrder(IoOrderEntity orderEntity) { public int insertOrder(IoOrderEntity orderEntity) {
orderEntity.setId(null);
return orderDao.insert(orderEntity); return orderDao.insert(orderEntity);
} }
@ -92,4 +126,38 @@ public class IoOrderServiceImpl implements IoOrderService {
return orderDao.filterOrderList(filterOrderRequest); return orderDao.filterOrderList(filterOrderRequest);
} }
@Override
public List<IoOrderEntity> selectSupplementOrderList() {
return orderDao.selectSupplementOrderList();
}
@Override
public List<IoOrderResponse> checkSupplementOrder(List<IoOrderEntity> orderEntities) {
if (CollUtil.isEmpty(orderEntities)) {
return Collections.emptyList();
}
List<IoOrderResponse> result = new ArrayList<>();
orderEntities.forEach(orderEntity -> {
IoOrderResponse response = new IoOrderResponse();
BeanUtil.copyProperties(orderEntity, response);
if (orderEntity.getStatus().equals(ConstantStatus.ORDER_STATUS_AUDITED) && checkBusTypeSupplementOrder(orderEntity)
&& StrUtil.isEmpty(orderEntity.getSupplementNo())) {
response.setEnableSupplementOrder(true);
}
result.add(response);
});
return result;
}
@Resource
BasicBussinessTypeDao basicBussinessTypeDao;
boolean checkBusTypeSupplementOrder(IoOrderEntity orderEntity) {
BasicBussinessTypeEntity supplementOrderType = basicBussinessTypeDao.selectOne(new QueryWrapper<BasicBussinessTypeEntity>().eq("action", orderEntity.getAction()));
if (supplementOrderType != null) {
return true;
}
return false;
}
} }

@ -11,6 +11,8 @@ public interface InvProductDetailService {
List<InvProductDetailEntity> selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode); List<InvProductDetailEntity> selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode);
InvProductDetailEntity sortFindByCode(String code);
boolean insertList(List<InvProductDetailEntity> invProductDetailEntities); boolean insertList(List<InvProductDetailEntity> invProductDetailEntities);
/** /**

@ -17,6 +17,7 @@ public class InvPreinOrderServiceImpl implements InvPreinOrderService {
@Override @Override
public void insert(InvPreinOrderEntity invPreinOrderEntity) { public void insert(InvPreinOrderEntity invPreinOrderEntity) {
invPreinOrderEntity.setId(null);
invPreinOrderDao.insert(invPreinOrderEntity); invPreinOrderDao.insert(invPreinOrderEntity);
} }

@ -1,5 +1,6 @@
package com.glxp.api.service.inv.impl; package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
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.InvProductDetailDao; import com.glxp.api.dao.inv.InvProductDetailDao;
@ -22,6 +23,7 @@ public class InvProductDetailServiceImpl implements InvProductDetailService {
@Override @Override
public int insert(InvProductDetailEntity invProductDetailEntity) { public int insert(InvProductDetailEntity invProductDetailEntity) {
invProductDetailEntity.setId(null);
return invProductDetailDao.insert(invProductDetailEntity); return invProductDetailDao.insert(invProductDetailEntity);
} }
@ -30,6 +32,15 @@ public class InvProductDetailServiceImpl implements InvProductDetailService {
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("batchNo", batchNo).eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode));
} }
@Override
public InvProductDetailEntity sortFindByCode(String code) {
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>().eq("code", code).orderByDesc("id"));
if (CollUtil.isNotEmpty(invProductDetailEntities))
return invProductDetailEntities.get(0);
else
return null;
}
@Override @Override
public boolean insertList(List<InvProductDetailEntity> invProductDetailEntities) { public boolean insertList(List<InvProductDetailEntity> invProductDetailEntities) {
return invProductDetailDao.insertBatch(invProductDetailEntities); return invProductDetailDao.insertBatch(invProductDetailEntities);

@ -23,6 +23,7 @@ public class InvProductServiceImpl implements InvProductService {
@Override @Override
public int insert(InvProductEntity invProductEntity) { public int insert(InvProductEntity invProductEntity) {
invProductEntity.setId(null);
return invProductDao.insert(invProductEntity); return invProductDao.insert(invProductEntity);
} }

@ -0,0 +1,80 @@
package com.glxp.api.task;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.dao.schedule.ScheduledDao;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.system.ScheduledEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.req.system.ScheduledRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.service.inout.IoAddInoutService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.system.SystemParamConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
*
*/
@Slf4j
@Component
@EnableScheduling
public class SupplementOrderTask implements SchedulingConfigurer {
@Resource
ScheduledDao scheduledDao;
@Resource
IoOrderService orderService;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
IoAddInoutService addInoutService;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(() -> process(),
triggerContext -> {
ScheduledRequest scheduledRequest = new ScheduledRequest();
scheduledRequest.setCronName("supplementOrderTask");
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
if (scheduledEntity == null) {
log.error("定时任务未配置,请注意!");
return null;
}
String cron = scheduledEntity.getCron();
return new CronTrigger(cron).nextExecutionTime(triggerContext);
});
}
private void process() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("supplement_order_interval");
if (!"0".equals(systemParamConfigEntity.getParamValue())) {
log.info("开始扫描需要平衡补单数据");
//计数器
AtomicInteger counter = new AtomicInteger(0);
List<IoOrderEntity> orderEntities = orderService.selectSupplementOrderList();
if (CollUtil.isNotEmpty(orderEntities)) {
List<IoOrderResponse> orderResponses = orderService.checkSupplementOrder(orderEntities);
for (IoOrderResponse orderResponse : orderResponses) {
if (orderResponse.isEnableSupplementOrder()) {
//此单据可以补单
addInoutService.supplementOrder(orderResponse.getBillNo());
counter.addAndGet(1);
}
}
}
log.info("平衡补单,此次补单数量为:{}", counter.get());
}
}
}

@ -4,9 +4,9 @@ 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_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root username: root
password: 123456 password: Glxp@6066
hikari: hikari:
connection-timeout: 60000 connection-timeout: 60000
maximum-pool-size: 60 maximum-pool-size: 60

@ -76,7 +76,8 @@
AND deptCode = #{deptCode} AND deptCode = #{deptCode}
</if> </if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND createTime between #{startTime} and #{endTime} AND createTime between #{startTime}
and #{endTime}
</if> </if>
<if test="startTime != null and startTime != ''"> <if test="startTime != null and startTime != ''">
AND createTime >= #{startTime} AND createTime >= #{startTime}
@ -86,4 +87,17 @@
</if> </if>
</where> </where>
</select> </select>
<select id="selectSupplementOrderList" resultType="com.glxp.api.entity.inout.IoOrderEntity">
SELECT *
FROM io_order
WHERE (supplementNo IS NULL OR supplementNo = '')
AND `action` IN (
SELECT `action`
FROM basic_bussiness_type
WHERE supplementOrderType IS NOT NULL
OR supplementOrderType
!= '')
</select>
</mapper> </mapper>
Loading…
Cancel
Save