|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package com.glxp.sale.admin.controller.inout;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
@ -7,28 +8,37 @@ import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.glxp.sale.admin.annotation.AuthRuleAnnotation;
|
|
|
|
|
import com.glxp.sale.admin.constant.ConstantStatus;
|
|
|
|
|
import com.glxp.sale.admin.controller.inout.utils.DataTransUtil;
|
|
|
|
|
import com.glxp.sale.admin.dao.inout.CodesDao;
|
|
|
|
|
import com.glxp.sale.admin.dao.inout.CodesTempDao;
|
|
|
|
|
import com.glxp.sale.admin.dao.inout.OrderDao;
|
|
|
|
|
import com.glxp.sale.admin.dao.inout.StockOrderDao;
|
|
|
|
|
import com.glxp.sale.admin.dao.inventory.InvWarehouseDao;
|
|
|
|
|
import com.glxp.sale.admin.entity.auth.AuthAdmin;
|
|
|
|
|
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.basic.EntrustReceEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.info.CompanyEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.inout.*;
|
|
|
|
|
import com.glxp.sale.admin.entity.inventory.InvWarehouseEntity;
|
|
|
|
|
import com.glxp.sale.admin.entity.udid.UdiEntity;
|
|
|
|
|
import com.glxp.sale.admin.req.basic.BasicEntrustRecRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.inout.*;
|
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvUserRequest;
|
|
|
|
|
import com.glxp.sale.admin.res.PageSimpleResponse;
|
|
|
|
|
import com.glxp.sale.admin.res.inout.OrderEditRequest;
|
|
|
|
|
import com.glxp.sale.admin.service.auth.AuthAdminService;
|
|
|
|
|
import com.glxp.sale.admin.service.auth.CustomerService;
|
|
|
|
|
import com.glxp.sale.admin.service.basic.BussinessTypeService;
|
|
|
|
|
import com.glxp.sale.admin.service.basic.EntrustReceService;
|
|
|
|
|
import com.glxp.sale.admin.service.info.CompanyService;
|
|
|
|
|
import com.glxp.sale.admin.service.inout.*;
|
|
|
|
|
import com.glxp.sale.admin.service.inventory.InvWarehouseService;
|
|
|
|
|
import com.glxp.sale.admin.thread.InvProductsTrService;
|
|
|
|
|
import com.glxp.sale.admin.util.CustomUtil;
|
|
|
|
|
import com.glxp.sale.admin.util.FilterUdiUtils;
|
|
|
|
|
import com.glxp.sale.admin.util.*;
|
|
|
|
|
import com.glxp.sale.common.enums.ResultEnum;
|
|
|
|
|
import com.glxp.sale.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.sale.common.util.ResultVOUtils;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.regexp.RE;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@ -68,6 +78,18 @@ public class OrderController {
|
|
|
|
|
WarehouseUserService warehouseUserService;
|
|
|
|
|
@Resource
|
|
|
|
|
CustomerService customerService;
|
|
|
|
|
@Resource
|
|
|
|
|
EntrustReceService entrustReceService;
|
|
|
|
|
@Resource
|
|
|
|
|
GennerOrderUtils gennerOrderUtils;
|
|
|
|
|
@Resource
|
|
|
|
|
InvWarehouseDao invWarehouseDao;
|
|
|
|
|
@Resource
|
|
|
|
|
OrderDao orderDao;
|
|
|
|
|
@Resource
|
|
|
|
|
CodesTempDao codesTempDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private AuthAdminService authAdminService;
|
|
|
|
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
|
|
@GetMapping("udiwms/inout/order/getUdi")
|
|
|
|
@ -172,7 +194,8 @@ public class OrderController {
|
|
|
|
|
public BaseResponse filterOrder(OrderFilterRequest orderFilterRequest,
|
|
|
|
|
BindingResult bindingResult) {
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(orderFilterRequest.getCustomerId())) return ResultVOUtils.success();
|
|
|
|
|
if (StringUtils.isBlank(orderFilterRequest.getCustomerId()))
|
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
|
CompanyEntity companyEntity = companyService.findCompany(Long.parseLong(orderFilterRequest.getCustomerId()));
|
|
|
|
|
if (companyEntity.getUnitIdFk().equals("110")) {
|
|
|
|
|
Integer userId = customerService.getUserId();
|
|
|
|
@ -228,37 +251,43 @@ public class OrderController {
|
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Integer userId = customerService.getUserId();
|
|
|
|
|
Integer userId = null;
|
|
|
|
|
if (StrUtil.isNotEmpty(orderFilterRequest.getWmsUserId())) {
|
|
|
|
|
userId = Integer.parseInt(orderFilterRequest.getWmsUserId());
|
|
|
|
|
} else userId = customerService.getUserId();
|
|
|
|
|
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderFilterRequest.getAction());
|
|
|
|
|
StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(orderFilterRequest.getOrderId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (stockOrderEntity == null || stockOrderEntity.getOrderIdFk() == null) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据未找到!");
|
|
|
|
|
} else if (!bussinessTypeEntity.getLocalAction().equals(stockOrderEntity.getBillType())) {
|
|
|
|
|
return ResultVOUtils.error(500, "非" + bussinessTypeEntity.getName() + "类型单据!");
|
|
|
|
|
} else if (stockOrderEntity.getStatus().equals(ConstantStatus.SORDER_CHECKED)) {
|
|
|
|
|
if (StrUtil.isNotEmpty(stockOrderEntity.getLocStorageCode())) {
|
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(stockOrderEntity.getLocStorageCode());
|
|
|
|
|
FilterInvUserRequest filterInvUserRequest = new FilterInvUserRequest();
|
|
|
|
|
filterInvUserRequest.setCode(invWarehouseEntity.getCode());
|
|
|
|
|
filterInvUserRequest.setUserid(userId.longValue());
|
|
|
|
|
List<WarehouseUserEntity> warehouseUserEntities = warehouseUserService.filterWarehouseUsers(filterInvUserRequest);
|
|
|
|
|
List<EntrustReceEntity> entrustReceEntities = null;
|
|
|
|
|
if (!stockOrderEntity.isEntrustEnd()) {
|
|
|
|
|
BasicEntrustRecRequest basicEntrustRecRequest = new BasicEntrustRecRequest();
|
|
|
|
|
basicEntrustRecRequest.setAction(stockOrderEntity.getBillType());
|
|
|
|
|
basicEntrustRecRequest.setEntrustUser(userId + "");
|
|
|
|
|
basicEntrustRecRequest.setCurInv(stockOrderEntity.getLocStorageCode());
|
|
|
|
|
entrustReceEntities = entrustReceService.filterEntrustRec(basicEntrustRecRequest);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "单据已委托验收完成!");
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isEmpty(warehouseUserEntities) && CollUtil.isEmpty(entrustReceEntities)) {
|
|
|
|
|
return ResultVOUtils.error(500, "权限不足,无法验收!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
|
|
|
|
|
orderFilterRequest.setId(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
stockOrderFilterRequest.setUserId(customerService.getUserId());
|
|
|
|
|
// if (StrUtil.isNotEmpty(stockOrderFilterRequest.getLocStorageCode())) {
|
|
|
|
|
// InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(stockOrderFilterRequest.getLocStorageCode());
|
|
|
|
|
// FilterInvUserRequest filterInvUserRequest = new FilterInvUserRequest();
|
|
|
|
|
// filterInvUserRequest.setCode(invWarehouseEntity.getCode());
|
|
|
|
|
// filterInvUserRequest.setUserid(userId.longValue());
|
|
|
|
|
// filterInvUserRequest.setIsDirector(true);
|
|
|
|
|
// List<WarehouseUserEntity> warehouseUserEntities = warehouseUserService.filterWarehouseUsers(filterInvUserRequest);
|
|
|
|
|
// if (CollUtil.isEmpty(warehouseUserEntities)) {
|
|
|
|
|
// stockOrderFilterRequest.setUnionUser(userId);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "非未验收单据!");
|
|
|
|
|
}
|
|
|
|
|
orderFilterRequest.setId(stockOrderEntity.getOrderIdFk());
|
|
|
|
|
if (orderFilterRequest.getOrderId() == null || "".equals(orderFilterRequest.getOrderId())) {
|
|
|
|
|
orderFilterRequest.setId(null);
|
|
|
|
|
|
|
|
|
@ -267,10 +296,6 @@ public class OrderController {
|
|
|
|
|
return ResultVOUtils.error(500, "单据已验收!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<OrderEntity> orderEntityList;
|
|
|
|
|
if (orderFilterRequest.getStatus() == null || orderFilterRequest.getStatus() == 0) {
|
|
|
|
|
orderFilterRequest.setStatus(4);
|
|
|
|
@ -294,19 +319,104 @@ public class OrderController {
|
|
|
|
|
@PostMapping("/spms/inout/order/check/updateStatus")
|
|
|
|
|
public BaseResponse updateStatus(@RequestBody UpdateExportStatusRequest updateExportStatusRequest,
|
|
|
|
|
BindingResult bindingResult) {
|
|
|
|
|
AuthAdmin authAdmin = null;
|
|
|
|
|
if (StrUtil.isNotEmpty(updateExportStatusRequest.getWmsUserId())) {
|
|
|
|
|
authAdmin = authAdminService.findById(Long.parseLong(updateExportStatusRequest.getWmsUserId()));
|
|
|
|
|
} else
|
|
|
|
|
authAdmin = customerService.getUserBean();
|
|
|
|
|
OrderEntity orderEntity = orderService.findById(updateExportStatusRequest.getOrderId());
|
|
|
|
|
if (orderEntity.getReceiveStatus() == ConstantStatus.RECEIVE_ED) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据已验收!");
|
|
|
|
|
}
|
|
|
|
|
if (updateExportStatusRequest.isEntrust() && updateExportStatusRequest.getEntrustId() != null) {
|
|
|
|
|
EntrustReceEntity entrustReceEntity = entrustReceService.findById(updateExportStatusRequest.getEntrustId());
|
|
|
|
|
if (entrustReceEntity == null) {
|
|
|
|
|
return ResultVOUtils.error(500, "无验收权限!");
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
AuthAdmin authAdmin = customerService.getUserBean();
|
|
|
|
|
long customerId = customerService.getCustomerId();
|
|
|
|
|
return updateReview(authAdmin, customerId, updateExportStatusRequest);
|
|
|
|
|
if (orderEntity.getFromType().intValue() != ConstantStatus.FROM_CHANGE && orderEntity.getFromType().intValue() != ConstantStatus.FROM_PEACE_CHANGE) {
|
|
|
|
|
transferOrder(orderEntity, entrustReceEntity);
|
|
|
|
|
}
|
|
|
|
|
if (!entrustReceEntity.isFinishRece()) {
|
|
|
|
|
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
|
|
|
|
|
stockOrderFilterRequest.setOrderIdFk(updateExportStatusRequest.getOrderId());
|
|
|
|
|
List<StockOrderEntity> stockOrderEntityLit = stockOrderService.findAllOrders(stockOrderFilterRequest);
|
|
|
|
|
if (!stockOrderEntityLit.isEmpty()) {
|
|
|
|
|
for (StockOrderEntity stockOrderEntity : stockOrderEntityLit) {
|
|
|
|
|
stockOrderEntity.setEntrustEnd(true);
|
|
|
|
|
stockOrderService.updateById(stockOrderEntity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ResultVOUtils.success("验收成功!");
|
|
|
|
|
} else
|
|
|
|
|
|
|
|
|
|
return updateReview(authAdmin, updateExportStatusRequest);
|
|
|
|
|
}
|
|
|
|
|
} else
|
|
|
|
|
return updateReview(authAdmin, updateExportStatusRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void transferOrder(OrderEntity orderEntity, EntrustReceEntity entrustReceEntity) {
|
|
|
|
|
List<WarehouseEntity> warehouseEntities = codesService.findByReceiptId(orderEntity.getId());
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(entrustReceEntity.getEntrustAction());
|
|
|
|
|
OrderEntity supplementOrder = new OrderEntity();
|
|
|
|
|
BeanUtil.copyProperties(orderEntity, supplementOrder);
|
|
|
|
|
//生成补单单号
|
|
|
|
|
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
|
|
|
|
|
String supplementOrderNo = orderNo;
|
|
|
|
|
supplementOrder.setOriginUllageSupNo(orderEntity.getId());
|
|
|
|
|
supplementOrder.setId(supplementOrderNo);
|
|
|
|
|
supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
supplementOrder.setExportStatus(0); //设置导出状态为未导出
|
|
|
|
|
supplementOrder.setContrastStatus(0);//设置erp校验状态为未校验
|
|
|
|
|
supplementOrder.setReceiveStatus(0); //设置验收状态为未验收
|
|
|
|
|
supplementOrder.setCorpOrderId(CustomUtil.getId() + "x");
|
|
|
|
|
//修改往来单位及当前库存号
|
|
|
|
|
supplementOrder.setFromCorpId(orderEntity.getLocStorageCode());
|
|
|
|
|
supplementOrder.setLocStorageCode(orderEntity.getFromCorpId());
|
|
|
|
|
String name = invWarehouseDao.getNameByCode(supplementOrder.getFromCorpId());
|
|
|
|
|
supplementOrder.setFromCorp(name);
|
|
|
|
|
supplementOrder.setFromType(ConstantStatus.FROM_PEACE_CHANGE);
|
|
|
|
|
|
|
|
|
|
supplementOrder.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
supplementOrder.setAction(bussinessTypeEntity.getAction());
|
|
|
|
|
supplementOrder.setErpFk(null);
|
|
|
|
|
//复制码表
|
|
|
|
|
List<WarehouseEntity> supplementCodes = new ArrayList<>();
|
|
|
|
|
warehouseEntities.forEach(
|
|
|
|
|
code -> {
|
|
|
|
|
WarehouseEntity supplementCode = new WarehouseEntity();
|
|
|
|
|
BeanUtil.copyProperties(code, supplementCode);
|
|
|
|
|
supplementCode.setFromCorpId(supplementOrder.getFromCorpId());
|
|
|
|
|
supplementCode.setFromCorp(supplementOrder.getFromCorp());
|
|
|
|
|
supplementCode.setLocStorageCode(supplementOrder.getLocStorageCode());
|
|
|
|
|
supplementCode.setOrderId(supplementOrderNo);
|
|
|
|
|
//查询补单设置
|
|
|
|
|
supplementCode.setAction(bussinessTypeEntity.getSupplementOrderType());
|
|
|
|
|
supplementCode.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
supplementCode.setId(null);
|
|
|
|
|
supplementCodes.add(supplementCode);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
//更新数据
|
|
|
|
|
try {
|
|
|
|
|
orderDao.insertOrder(supplementOrder);
|
|
|
|
|
orderEntity.setUllageSupNo(supplementOrder.getId());
|
|
|
|
|
orderDao.updateOrder(orderEntity);
|
|
|
|
|
codesTempDao.insertCodesTemp(supplementCodes);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse updateReview(AuthAdmin authAdmin, long customerId, UpdateExportStatusRequest updateExportStatusRequest) {
|
|
|
|
|
|
|
|
|
|
public BaseResponse updateReview(AuthAdmin authAdmin, UpdateExportStatusRequest updateExportStatusRequest) {
|
|
|
|
|
OrderEntity orderEntity = orderService.findById(updateExportStatusRequest.getOrderId());
|
|
|
|
|
orderEntity.setReceiveStatus(1);
|
|
|
|
|
if (customerId == 110) {
|
|
|
|
|
orderEntity.setReviewUser(authAdmin.getId().intValue());
|
|
|
|
|
}
|
|
|
|
|
orderEntity.setReviewUser(authAdmin.getId().intValue());
|
|
|
|
|
orderEntity.setUpdateTime(new Date());
|
|
|
|
|
orderEntity.setAuditTime(new Date());
|
|
|
|
|
orderService.updateOrder(orderEntity);
|
|
|
|
@ -317,10 +427,9 @@ public class OrderController {
|
|
|
|
|
stockOrderFilterRequest.setBillNo(id);
|
|
|
|
|
StockOrderEntity stockOrderEntity = stockOrderService.findOne(stockOrderFilterRequest);
|
|
|
|
|
stockOrderEntity.setStatus(ConstantStatus.SORDER_DELIVER);
|
|
|
|
|
if (customerId == 110) {
|
|
|
|
|
stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
|
|
|
|
|
}
|
|
|
|
|
stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
|
|
|
|
|
stockOrderEntity.setAuditTime(new Date());
|
|
|
|
|
stockOrderEntity.setEntrustEnd(true);
|
|
|
|
|
stockOrderService.updateById(stockOrderEntity);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
@ -330,9 +439,7 @@ public class OrderController {
|
|
|
|
|
if (!stockOrderEntityLit.isEmpty()) {
|
|
|
|
|
for (StockOrderEntity stockOrderEntity : stockOrderEntityLit) {
|
|
|
|
|
stockOrderEntity.setStatus(ConstantStatus.SORDER_DELIVER);
|
|
|
|
|
if (customerId == 110) {
|
|
|
|
|
stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
|
|
|
|
|
}
|
|
|
|
|
stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
|
|
|
|
|
stockOrderEntity.setAuditTime(new Date());
|
|
|
|
|
stockOrderService.updateById(stockOrderEntity);
|
|
|
|
|
}
|
|
|
|
@ -360,7 +467,7 @@ public class OrderController {
|
|
|
|
|
|
|
|
|
|
AuthAdmin authAdmin = customerService.getUserBean();
|
|
|
|
|
long customerId = customerService.getCustomerId();
|
|
|
|
|
return updateReview(authAdmin, customerId, updateExportStatusRequest);
|
|
|
|
|
return updateReview(authAdmin, updateExportStatusRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|