bug修改,回退单据逻辑修改

zhairh
anthonyywj2 3 years ago
parent 630faad352
commit c69486989e

@ -3,12 +3,14 @@ package com.glxp.sale.admin.controller.basic;
import cn.hutool.core.collection.CollUtil;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.req.basic.SpsSyncDataRequest;
import com.glxp.sale.admin.res.basic.SpSyncUdiResponse;
import com.glxp.sale.admin.res.basic.SpsSyncBusResponse;
import com.glxp.sale.admin.res.basic.SpsSyncDataResponse;
import com.glxp.sale.admin.res.basic.SpsSyncOrderResponse;
import com.glxp.sale.admin.service.basic.BasicExportService;
import com.glxp.sale.admin.service.inout.OrderService;
import com.glxp.sale.common.res.BaseResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@ -22,6 +24,8 @@ public class SpsSyncDownloadController {
SpsSyncDownloadService spsSyncDownloadService;
@Resource
BasicExportService basicExportService;
@Resource
OrderService orderService;
@GetMapping("sps/sync/basic")
public BaseResponse findProductInfo(SpsSyncDataRequest spsSyncDataRequest) {
@ -39,7 +43,7 @@ public class SpsSyncDownloadController {
if (CollUtil.isNotEmpty(baseResponse.getData().getWarehouseUserEntities())) {
logs = logs + "分库用户信息:" + baseResponse.getData().getWarehouseUserEntities().size() + "条\n";
}
if(CollUtil.isNotEmpty(baseResponse.getData().getWarehouseBussinessTypeEntities())){
if (CollUtil.isNotEmpty(baseResponse.getData().getWarehouseBussinessTypeEntities())) {
logs = logs + "分库单据类型:" + baseResponse.getData().getWarehouseBussinessTypeEntities().size() + "条\n";
}
@ -118,6 +122,11 @@ public class SpsSyncDownloadController {
basicExportStatusEntity.setRemark(logs);
basicExportService.updateExportStatus(basicExportStatusEntity);
if (CollUtil.isNotEmpty(baseResponse.getData().getOrderEntities())) {
for (OrderEntity orderEntity : baseResponse.getData().getOrderEntities()) {
orderService.updateOrderStatus(orderEntity.getId(), 1);
}
}
SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData();
spsSyncOrderResponse.setTaskId(basicExportStatusEntity.getId());
baseResponse.setData(spsSyncOrderResponse);

@ -344,8 +344,6 @@ public class SpsSyncDownloadService {
SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet();
if (syncDataSetEntity.isOrderScanFinish()) {
List<OrderEntity> orderEntities = new ArrayList<>();
if (syncDataSetEntity.isOrderUnReceive()) {
OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);

@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.annotation.AuthRuleAnnotation;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.dao.inout.OrderDao;
import com.glxp.sale.admin.entity.auth.AuthAdmin;
import com.glxp.sale.admin.entity.basic.*;
import com.glxp.sale.admin.entity.info.CompanyEntity;
@ -83,6 +84,8 @@ public class StockOrderController {
GennerOrderUtils gennerOrderUtils;
@Resource
private BussinessTypeService bussinessTypeService;
@Resource
private OrderDao orderDao;
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/error")
@ -614,21 +617,43 @@ public class StockOrderController {
}
/**
* 退
*
*
* @param billNo
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/rollback")
@GetMapping("/udiwms/stock/order/received/rollback")
public BaseResponse rollbackOrder(String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
OrderEntity orderEntity = orderDao.selectByBillNo(billNo);
if (StrUtil.isNotEmpty(orderEntity.getSupplementNo()) || StrUtil.isNotEmpty(orderEntity.getUllageSupNo())) {
return ResultVOUtils.error(500, "单据已补单,无法撤回!");
}
if (orderEntity.getExportStatus() == ConstantStatus.ORDER_EXPORT_ED) {
return ResultVOUtils.error(500, "单据已同步到内网UDI管理系统无法撤回");
}
boolean result = stockOrderService.rollbackOrder(billNo);
if (result) {
return ResultVOUtils.success();
}
return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "回退失败");
return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败");
}
//未验收单据撤回到等待校验
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/unReceive/rollback")
public BaseResponse rollUnReceivebackOrder(String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean result = stockOrderService.rollbackOrder(billNo);
if (result) {
return ResultVOUtils.success("撤回成功!");
}
return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败");
}
}

@ -1264,10 +1264,10 @@ public class WareHouseController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
List<AuthAdmin> userList = JSONUtil.toList(userListJson, AuthAdmin.class);
if (CollUtil.isEmpty(userList)) {
return ResultVOUtils.error(500, "用户列表不能为空");
}
warehouseUserService.saveWarehouseUser(code, JSONUtil.toList(userListJson, AuthAdmin.class));
// if (CollUtil.isEmpty(userList)) {
// return ResultVOUtils.error(500, "用户列表不能为空");
// }
warehouseUserService.saveWarehouseUser(code, userList);
InvSubWarehouseEntity invSubWarehouseEntity =
invSubWarehouseService.findByInvSubByCode(code);
invWarehouseService.updateTime(invSubWarehouseEntity.getParentId(), new Date());

@ -1,5 +1,6 @@
package com.glxp.sale.admin.service.inout.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.sale.admin.constant.ConstantStatus;
@ -165,7 +166,6 @@ public class StockOrderServiceImpl implements StockOrderService {
public boolean rollbackOrder(String billNo) {
//查询业务单据
StockOrderEntity stockOrderEntity = stockOrderDao.selectByBillNo(billNo);
//查询扫码单据
OrderEntity orderEntity = orderDao.selectByBillNo(billNo);
if (stockOrderEntity.getStatus().equals(ConstantStatus.SORDER_CHECKED)) {
@ -198,7 +198,9 @@ public class StockOrderServiceImpl implements StockOrderService {
filterInvProductDetailRequest.setOrderIdFk(orderEntity.getId());
List<InvProductDetailEntity> invProductDetailEntities = invPreInProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
Map<String, List<InvProductDetailEntity>> invPreInProductDetailMap = invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk));
Map<String, List<InvProductDetailEntity>> invPreInProductDetailMap = invProductDetailEntities
.stream()
.collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk));
List<InvProductEntity> invPreInProductList = new ArrayList<>(invPreInProductDetailMap.keySet().size());
@ -248,42 +250,43 @@ public class StockOrderServiceImpl implements StockOrderService {
filterInvProductDetailRequest.setOrderIdFk(orderEntity.getId());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
//合并各个产品集合数据
Map<String, List<InvProductDetailEntity>> invProductDetailMap = invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk));
List<InvProductEntity> invProductList = new ArrayList<>(invProductDetailMap.keySet().size());
// //合并各个产品集合数据
// Map<String, List<InvProductDetailEntity>> invProductDetailMap =
// invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk));
for (String productId : invProductDetailMap.keySet()) {
List<InvProductDetailEntity> detailList = invProductDetailMap.get(productId);
//查询库存
List<InvProductEntity> invProductList = new ArrayList<>();
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
filterInvProductRequest.setRelIdFk(productId);
filterInvProductRequest.setSupId(detailList.get(0).getSupId());
filterInvProductRequest.setInvWarehouseCode(detailList.get(0).getInvWarehouseCode());
filterInvProductRequest.setInvStorageCode(detailList.get(0).getInvStorageCode());
if (StrUtil.isNotBlank(detailList.get(0).getBatchNo())) {
filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk());
filterInvProductRequest.setSupId(invProductDetailEntity.getSupId());
filterInvProductRequest.setInvWarehouseCode(invProductDetailEntity.getInvWarehouseCode());
filterInvProductRequest.setInvStorageCode(invProductDetailEntity.getInvStorageCode());
if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) {
filterInvProductRequest.setBatchNo("empty");
} else {
filterInvProductRequest.setBatchNo(detailList.get(0).getBatchNo());
filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo());
}
List<InvProductEntity> invProductEntities = invProductDao.filterInvProduct(filterInvProductRequest);
InvProductEntity invProductEntity = invProductEntities.get(0);
detailList.forEach(invProductDetailEntity -> calculateInvCount(invProductEntity, invProductDetailEntity));
invProductList.add(invProductEntity);
if (CollUtil.isNotEmpty(invProductEntities) && invProductEntities.size() > 0) {
InvProductEntity invProductEntity = invProductEntities.get(0);
calculateInvCount(invProductEntity, invProductDetailEntity);
invProductList.add(invProductEntity);
} else {
return false;
}
}
//删除库存详情
invProductDetailDao.deleteByOrderId(orderEntity.getId());
//删除码详情
codesDao.deleteByOrderId(orderEntity.getId());
// codesDao.deleteByOrderId(orderEntity.getId());
//更新库存
for (InvProductEntity invProductEntity : invProductList) {
//查询库存码详情,如果库存码详情为空,则删除此库存
FilterInvProductDetailRequest detailParams = new FilterInvProductDetailRequest();
detailParams.setBatchNo(invProductEntity.getBatchNo());
detailParams.setInvCodes(Collections.singletonList(invProductEntity.getInvStorageCode()));
detailParams.setInvWarehouseCode(invProductEntity.getInvWarehouseCode());
detailParams.setSupId(invProductEntity.getSupId());
detailParams.setProductIdFk(invProductEntity.getRelIdFk());
int count = invProductDetailDao.statCount(detailParams);
if (count == 0) {
@ -294,7 +297,6 @@ public class StockOrderServiceImpl implements StockOrderService {
}
}
}
//修改单据状态到未验收
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED);
}

@ -68,6 +68,8 @@ public class WarehouseUserServiceImpl implements WarehouseUserService {
@Override
public void saveWarehouseUser(String code, List<AuthAdmin> userList) {
//删除旧数据
warehouseUserDao.deleteByCode(code);
if (CollUtil.isNotEmpty(userList)) {
List<WarehouseUserEntity> warehouseUserEntities = new ArrayList<>(userList.size());
userList.forEach(user -> {
@ -77,8 +79,6 @@ public class WarehouseUserServiceImpl implements WarehouseUserService {
warehouseUserEntity.setUserid(user.getId());
warehouseUserEntities.add(warehouseUserEntity);
});
//删除旧数据
warehouseUserDao.deleteByCode(code);
warehouseUserDao.batchInsert(warehouseUserEntities);
}
}
@ -110,6 +110,6 @@ public class WarehouseUserServiceImpl implements WarehouseUserService {
@Override
public Integer countUserBySubInvCode(String subInvCode) {
return warehouseUserDao.countByCode(subInvCode);
return warehouseUserDao.countByCode(subInvCode);
}
}

@ -119,11 +119,20 @@ public class InvProductServiceImpl implements InvProductService {
for (String relIdFk : relIdFkSet) {
if (CollUtil.isNotEmpty(batchNoSet)) {
for (String batchNo : batchNoSet) {
List<InvProductResponse> list = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).collect(Collectors.toList());
List<InvProductResponse> list =
data.stream().filter(product -> product.getRelIdFk().equals(relIdFk))
.filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(list)) {
InvProductResponse invProductResponse = list.get(0);
int inCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).mapToInt(InvProductResponse::getInCount).sum();
int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).mapToInt(InvProductResponse::getOutCount).sum();
int inCount = data.stream()
.filter(product -> product.getRelIdFk().equals(relIdFk))
.filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo)))
.mapToInt(InvProductResponse::getInCount).sum();
int outCount = data.stream()
.filter(product -> product.getRelIdFk().equals(relIdFk))
.filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo)))
.mapToInt(InvProductResponse::getOutCount).sum();
invProductResponse.setInCount(inCount);
invProductResponse.setOutCount(outCount);
invProductResponse.setReCount(inCount - outCount);

@ -34,7 +34,7 @@
<insert id="replaceAuthAdmin" keyProperty="id" parameterType="com.glxp.sale.admin.entity.auth.AuthAdmin">
replace
INTO auth_user(id, userName, passWord, lastLoginIp,
lastLoginTime, createTime, userFlag, lastModifyTime, employeeName,CustomerId,locInvCode,locSubInvCode,dept)
lastLoginTime, createTime, userFlag, lastModifyTime, employeeName,CustomerId,locInvCode,locSubInvCode,dept,comments)
values (
#{id},
#{userName},
@ -48,7 +48,7 @@
#{CustomerId},
#{locInvCode},
#{locSubInvCode},
#{dept}
#{dept},#{comments}
)
</insert>
<select id="findByUserName" parameterType="hashmap" resultType="com.glxp.sale.admin.entity.auth.AuthAdmin">
@ -100,7 +100,7 @@
<insert id="insertAuthAdmin" keyProperty="id" parameterType="com.glxp.sale.admin.entity.auth.AuthAdmin">
INSERT INTO
auth_user(userName,passWord,lastLoginIp,lastLoginTime,createTime,userFlag
,employeeName,CustomerId,lastModifyTime,locInvCode,locSubInvCode,dept)
,employeeName,CustomerId,lastModifyTime,locInvCode,locSubInvCode,dept,comments)
values
(#{userName},
<choose>
@ -132,7 +132,7 @@
#{createTime},
#{userFlag,jdbcType=INTEGER},
#{employeeName},
#{CustomerId},#{lastModifyTime},#{locInvCode},#{locSubInvCode},#{dept})
#{CustomerId},#{lastModifyTime},#{locInvCode},#{locSubInvCode},#{dept},#{comments})
</insert>
<update id="updateAuthAdmin" parameterType="com.glxp.sale.admin.entity.auth.AuthAdmin">
@ -148,6 +148,7 @@
<if test="locInvCode != null">locInvCode=#{locInvCode},</if>
<if test="locSubInvCode != null">locSubInvCode=#{locSubInvCode},</if>
<if test="dept != null">dept=#{dept},</if>
<if test="comments != null">comments=#{comments},</if>
</trim>
WHERE id=#{id}

Loading…
Cancel
Save