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

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

@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.annotation.AuthRuleAnnotation;
import com.glxp.sale.admin.constant.ConstantStatus; 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.auth.AuthAdmin;
import com.glxp.sale.admin.entity.basic.*; import com.glxp.sale.admin.entity.basic.*;
import com.glxp.sale.admin.entity.info.CompanyEntity; import com.glxp.sale.admin.entity.info.CompanyEntity;
@ -83,6 +84,8 @@ public class StockOrderController {
GennerOrderUtils gennerOrderUtils; GennerOrderUtils gennerOrderUtils;
@Resource @Resource
private BussinessTypeService bussinessTypeService; private BussinessTypeService bussinessTypeService;
@Resource
private OrderDao orderDao;
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/error") @GetMapping("/udiwms/stock/order/error")
@ -614,21 +617,43 @@ public class StockOrderController {
} }
/** /**
* 退 *
* *
* @param billNo * @param billNo
* @return * @return
*/ */
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/rollback") @GetMapping("/udiwms/stock/order/received/rollback")
public BaseResponse rollbackOrder(String billNo) { public BaseResponse rollbackOrder(String billNo) {
if (StrUtil.isBlank(billNo)) { if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); 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); boolean result = stockOrderService.rollbackOrder(billNo);
if (result) { if (result) {
return ResultVOUtils.success(); 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); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
} }
List<AuthAdmin> userList = JSONUtil.toList(userListJson, AuthAdmin.class); List<AuthAdmin> userList = JSONUtil.toList(userListJson, AuthAdmin.class);
if (CollUtil.isEmpty(userList)) { // if (CollUtil.isEmpty(userList)) {
return ResultVOUtils.error(500, "用户列表不能为空"); // return ResultVOUtils.error(500, "用户列表不能为空");
} // }
warehouseUserService.saveWarehouseUser(code, JSONUtil.toList(userListJson, AuthAdmin.class)); warehouseUserService.saveWarehouseUser(code, userList);
InvSubWarehouseEntity invSubWarehouseEntity = InvSubWarehouseEntity invSubWarehouseEntity =
invSubWarehouseService.findByInvSubByCode(code); invSubWarehouseService.findByInvSubByCode(code);
invWarehouseService.updateTime(invSubWarehouseEntity.getParentId(), new Date()); invWarehouseService.updateTime(invSubWarehouseEntity.getParentId(), new Date());

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

@ -68,6 +68,8 @@ public class WarehouseUserServiceImpl implements WarehouseUserService {
@Override @Override
public void saveWarehouseUser(String code, List<AuthAdmin> userList) { public void saveWarehouseUser(String code, List<AuthAdmin> userList) {
//删除旧数据
warehouseUserDao.deleteByCode(code);
if (CollUtil.isNotEmpty(userList)) { if (CollUtil.isNotEmpty(userList)) {
List<WarehouseUserEntity> warehouseUserEntities = new ArrayList<>(userList.size()); List<WarehouseUserEntity> warehouseUserEntities = new ArrayList<>(userList.size());
userList.forEach(user -> { userList.forEach(user -> {
@ -77,8 +79,6 @@ public class WarehouseUserServiceImpl implements WarehouseUserService {
warehouseUserEntity.setUserid(user.getId()); warehouseUserEntity.setUserid(user.getId());
warehouseUserEntities.add(warehouseUserEntity); warehouseUserEntities.add(warehouseUserEntity);
}); });
//删除旧数据
warehouseUserDao.deleteByCode(code);
warehouseUserDao.batchInsert(warehouseUserEntities); warehouseUserDao.batchInsert(warehouseUserEntities);
} }
} }
@ -110,6 +110,6 @@ public class WarehouseUserServiceImpl implements WarehouseUserService {
@Override @Override
public Integer countUserBySubInvCode(String subInvCode) { 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) { for (String relIdFk : relIdFkSet) {
if (CollUtil.isNotEmpty(batchNoSet)) { if (CollUtil.isNotEmpty(batchNoSet)) {
for (String batchNo : 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)) { if (CollUtil.isNotEmpty(list)) {
InvProductResponse invProductResponse = list.get(0); 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 inCount = data.stream()
int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).mapToInt(InvProductResponse::getOutCount).sum(); .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.setInCount(inCount);
invProductResponse.setOutCount(outCount); invProductResponse.setOutCount(outCount);
invProductResponse.setReCount(inCount - outCount); invProductResponse.setReCount(inCount - outCount);

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

Loading…
Cancel
Save