1.修改复制单据功能逻辑

master
x_z 3 years ago
parent 7866176a6d
commit 73b9a98a47

@ -22,7 +22,10 @@ import com.glxp.sale.admin.res.inout.ErpOrderResponse;
import com.glxp.sale.admin.res.inout.StockOrderResponse;
import com.glxp.sale.admin.service.auth.AuthAdminService;
import com.glxp.sale.admin.service.auth.CustomerService;
import com.glxp.sale.admin.service.basic.*;
import com.glxp.sale.admin.service.basic.BasicUnitMaintainService;
import com.glxp.sale.admin.service.basic.BussinessLocalTypeService;
import com.glxp.sale.admin.service.basic.BussinessTypeService;
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
import com.glxp.sale.admin.service.info.CompanyService;
import com.glxp.sale.admin.service.inout.*;
import com.glxp.sale.admin.service.inventory.InvStockPrintService;
@ -388,6 +391,8 @@ public class StockOrderController {
StockOrderEntity stockOrderEntity = stockOrderService.findById(addStockOrderChangeRequest.getStockOrderId());
OrderEntity originOrder = orderService.findById(stockOrderEntity.getOrderIdFk());
String oldOrderId = originOrder.getId();
String replicateNo = originOrder.getReplicateNo(); //复制单号
List<WarehouseEntity> originCodes = codesService.findByReceiptId(originOrder.getId());
originOrder.setActDate(DateUtil.formatDate(new Date()));
originOrder.setFromCorp(addStockOrderChangeRequest.getFromCorp());
@ -399,33 +404,49 @@ public class StockOrderController {
originOrder.setContrastStatus(0);//设置erp校验状态为未校验
originOrder.setReceiveStatus(0); //设置验收状态为未验收
originOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
originOrder.setErpFk(null);//关联业务单据置空
originOrder.setLocStorageCode(addStockOrderChangeRequest.getLocStorageCode());
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(originOrder.getAction());
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
String supplementOrderNo = orderNo;
if (StrUtil.isBlank(replicateNo)) {
replicateNo = supplementOrderNo; //此单据第一条复制单号
} else {
replicateNo = replicateNo + "," + supplementOrderNo; //复制单号拼接上新的单号
}
originOrder.setId(supplementOrderNo);
originOrder.setReplicateNo(null); //新单据的复制单号置空
List<WarehouseEntity> supplementCodes = new ArrayList<>();
List<WarehouseEntity> products = addStockOrderChangeRequest.getProducts();
originCodes.forEach(
code -> {
WarehouseEntity supplementCode = new WarehouseEntity();
BeanUtil.copyProperties(code, supplementCode);
supplementCode.setFromCorpId(originOrder.getFromCorpId());
supplementCode.setFromCorp(originOrder.getFromCorp());
supplementCode.setLocStorageCode(originOrder.getLocStorageCode());
supplementCode.setOrderId(supplementOrderNo);
//查询补单设置
supplementCode.setAction(originOrder.getAction());
supplementCode.setMainAction(originOrder.getMainAction());
supplementCode.setId(null);
supplementCodes.add(supplementCode);
//复制选中的产品
for (WarehouseEntity product : products) {
if (product.getRelId().equals(code.getRelId())) {
if ((StrUtil.isNotBlank(product.getBatchNo()) && StrUtil.isNotBlank(code.getBatchNo()) && product.getBatchNo().equals(code.getBatchNo()))
|| (StrUtil.isBlank(product.getBatchNo()) && StrUtil.isBlank(code.getBatchNo()))) {
WarehouseEntity supplementCode = new WarehouseEntity();
BeanUtil.copyProperties(code, supplementCode);
supplementCode.setFromCorpId(originOrder.getFromCorpId());
supplementCode.setFromCorp(originOrder.getFromCorp());
supplementCode.setLocStorageCode(originOrder.getLocStorageCode());
supplementCode.setOrderId(supplementOrderNo);
//查询补单设置
supplementCode.setAction(originOrder.getAction());
supplementCode.setMainAction(originOrder.getMainAction());
supplementCode.setId(null);
supplementCodes.add(supplementCode);
}
}
}
}
);
originOrder.setUpdateTime(new Date());
orderService.insertOrder(originOrder);
codesTempService.insertCodesTemp(supplementCodes);
orderService.updateReplicateNo(oldOrderId, replicateNo);
return ResultVOUtils.success();
}

@ -71,4 +71,13 @@ public interface OrderDao {
* @return
*/
boolean updateOrderTime(@Param("actDate") String actDate, @Param("auditTime") String auditTime, @Param("updateTime") String updateTime, @Param("orderIds") List<String> orderIds);
/**
*
*
* @param orderId
* @param replicateNo
* @return
*/
boolean updateReplicateNo(@Param("orderId") String orderId, @Param("replicateNo") String replicateNo);
}

@ -51,4 +51,7 @@ public class OrderEntity {
//审核时间
private Date auditTime;
//复制单号,多个单号之间使用英文逗号,分隔
private String replicateNo;
}

@ -1,7 +1,10 @@
package com.glxp.sale.admin.req.inout;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import lombok.Data;
import java.util.List;
@Data
public class AddStockOrderChangeRequest {
@ -20,5 +23,7 @@ public class AddStockOrderChangeRequest {
private String customerId;
private String stockOrderId;
private List<WarehouseEntity> products;
}

@ -104,4 +104,13 @@ public interface OrderService {
* @param orders
*/
public void getAllOrder(OrderEntity orderEntity, List<OrderEntity> orders);
/**
*
*
* @param orderId
* @param replicateNo
* @return
*/
boolean updateReplicateNo(String orderId, String replicateNo);
}

@ -369,6 +369,22 @@ public class OrderServiceImpl implements OrderService {
getAllOrder(order, orders);
}
}
//复制单号
if (StrUtil.isNotBlank(orderEntity.getReplicateNo())) {
//被复制单号不为空,查询复制单据
String[] replicateNos = orderEntity.getReplicateNo().split(",");
for (String replicateNo : replicateNos) {
orderFilterRequest.setId(replicateNo);
OrderEntity order = orderDao.findOne(orderFilterRequest);
orders.add(order);
}
}
}
@Override
public boolean updateReplicateNo(String orderId, String replicateNo) {
return orderDao.updateReplicateNo(orderId, replicateNo);
}
@Transactional(rollbackFor = Exception.class)

@ -33,7 +33,7 @@
fromCorp, status, remark, exportStatus, fromType, contrastStatus, signStatus,
receiveStatus, erpFk, stockCheckFk, customerId, supId,
exportFilePath, locStorageCode, supplementNo, ullageSupNo, createUser, reviewUser,
outChangeEnable, originUllageSupNo, preCheck,updateTime)
outChangeEnable, originUllageSupNo, preCheck,updateTime,replicateNo)
values (#{id},
#{action},
#{corpOrderId},
@ -52,7 +52,7 @@
#{erpFk},
#{stockCheckFk},
#{customerId}, #{supId}, #{exportFilePath}, #{locStorageCode}, #{supplementNo},
#{ullageSupNo}, #{createUser}, #{reviewUser}, #{outChangeEnable}, #{originUllageSupNo}, #{preCheck},#{updateTime})
#{ullageSupNo}, #{createUser}, #{reviewUser}, #{outChangeEnable}, #{originUllageSupNo}, #{preCheck},#{updateTime}, #{replicateNo})
</insert>
@ -63,7 +63,7 @@
fromCorp, status, remark, exportStatus, fromType, contrastStatus, signStatus,
receiveStatus, erpFk, stockCheckFk, customerId, supId,
exportFilePath, locStorageCode, supplementNo, ullageSupNo, createUser, reviewUser,
outChangeEnable, originUllageSupNo, preCheck,updateTime)
outChangeEnable, originUllageSupNo, preCheck,updateTime,replicateNo)
values (#{id},
#{action},
#{corpOrderId},
@ -91,7 +91,9 @@
#{reviewUser},
#{outChangeEnable},
#{originUllageSupNo},
#{preCheck},#{updateTime})
#{preCheck},
#{updateTime},
#{replicateNo})
</insert>
@ -128,6 +130,7 @@
<if test="originUllageSupNo != null">originUllageSupNo=#{originUllageSupNo},</if>
<if test="preCheck != null">preCheck=#{preCheck},</if>
<if test="auditTime != null">auditTime=#{auditTime},</if>
<if test="replicateNo != null and replicateNo != ''">replicateNo=#{replicateNo}</if>
</trim>
WHERE id = #{id}
</update>
@ -559,4 +562,10 @@
</foreach>
</update>
<update id="updateReplicateNo">
update io_order
set replicateNo = #{replicateNo}
where id = #{orderId}
</update>
</mapper>
Loading…
Cancel
Save