feat(inventory): 实现执行单撤单功能
- 修改前端请求参数传递方式,从data改为params - 后端增加数据备份与恢复逻辑 - 新增项目产品信息的备份和恢复接口 - 完善撤单时订单状态及金额的更新处理 - 调整控制器参数接收方式以适配新的调用逻辑master
parent
1ac5053c4f
commit
e4fd3bca10
|
|
@ -67,7 +67,7 @@ export function recallExecution(id) {
|
||||||
return request({
|
return request({
|
||||||
url: `/inventory/execution/vue/recall`,
|
url: `/inventory/execution/vue/recall`,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: { id }
|
params: { id }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ public class VueInventoryExecutionController extends BaseController
|
||||||
@RequiresPermissions("inventory:execution:recall")
|
@RequiresPermissions("inventory:execution:recall")
|
||||||
@PostMapping("/recall")
|
@PostMapping("/recall")
|
||||||
@Log(title = "执行单撤单", businessType = BusinessType.DELETE)
|
@Log(title = "执行单撤单", businessType = BusinessType.DELETE)
|
||||||
public AjaxResult recall(@RequestBody Long id)
|
public AjaxResult recall( Long id)
|
||||||
{
|
{
|
||||||
inventoryExecutionService.recall(id);
|
inventoryExecutionService.recall(id);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.sip.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.sip.domain.ProjectProductInfo;
|
import com.ruoyi.sip.domain.ProjectProductInfo;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目产品信息Mapper接口
|
* 项目产品信息Mapper接口
|
||||||
|
|
@ -65,4 +66,10 @@ public interface ProjectProductInfoMapper
|
||||||
void saveBatch(List<ProjectProductInfo> addList);
|
void saveBatch(List<ProjectProductInfo> addList);
|
||||||
|
|
||||||
void updateBatch(List<ProjectProductInfo> updateList);
|
void updateBatch(List<ProjectProductInfo> updateList);
|
||||||
|
|
||||||
|
void saveBakData(@Param("orderCode") String orderCode,@Param("versionCode") String versionCode);
|
||||||
|
|
||||||
|
void restoreData(@Param("orderCode")String orderCode, @Param("versionCode")String versionCode,@Param("projectId") Long projectId);
|
||||||
|
|
||||||
|
int countBakData(@Param("orderCode")String orderCode,@Param("versionCode") String versionCode);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,8 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
|
||||||
private InventoryDeliveryMapper deliveryMapper;
|
private InventoryDeliveryMapper deliveryMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TodoService todoService;
|
private TodoService todoService;
|
||||||
|
@Autowired
|
||||||
|
private IProjectProductInfoBakService projectProductInfoBakService;
|
||||||
@Override
|
@Override
|
||||||
public ExecutionOrderVo selectInfo(Long id) {
|
public ExecutionOrderVo selectInfo(Long id) {
|
||||||
ExecutionOrderVo vo = new ExecutionOrderVo();
|
ExecutionOrderVo vo = new ExecutionOrderVo();
|
||||||
|
|
@ -238,6 +239,8 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
|
||||||
public void recall(Long id) {
|
public void recall(Long id) {
|
||||||
//查询订单
|
//查询订单
|
||||||
ProjectOrderInfo projectOrderInfo = projectOrderInfoMapper.selectProjectOrderInfoById(id);
|
ProjectOrderInfo projectOrderInfo = projectOrderInfoMapper.selectProjectOrderInfoById(id);
|
||||||
|
//还原数据
|
||||||
|
projectProductInfoBakService.restoreData(projectOrderInfo.getOrderCode(),projectOrderInfo.getVersionCode(),projectOrderInfo.getProjectId());
|
||||||
//修改订单状态
|
//修改订单状态
|
||||||
ProjectOrderInfo updateOrder = new ProjectOrderInfo();
|
ProjectOrderInfo updateOrder = new ProjectOrderInfo();
|
||||||
updateOrder.setOuterStatus(ProjectOrderInfo.OuterStatusEnum.NOT_OUTER.getCode());
|
updateOrder.setOuterStatus(ProjectOrderInfo.OuterStatusEnum.NOT_OUTER.getCode());
|
||||||
|
|
@ -245,6 +248,7 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
|
||||||
updateOrder.setSignStatus(ProjectOrderInfo.SignStatusEnum.NOT_SIGN.getCode());
|
updateOrder.setSignStatus(ProjectOrderInfo.SignStatusEnum.NOT_SIGN.getCode());
|
||||||
updateOrder.setVersionCode(String.valueOf(Integer.parseInt(projectOrderInfo.getVersionCode())+1));
|
updateOrder.setVersionCode(String.valueOf(Integer.parseInt(projectOrderInfo.getVersionCode())+1));
|
||||||
updateOrder.setOrderStatus(ProjectOrderInfo.OrderStatus.APPROVE_REJECT.getCode());
|
updateOrder.setOrderStatus(ProjectOrderInfo.OrderStatus.APPROVE_REJECT.getCode());
|
||||||
|
updateOrder.setActualPurchaseAmount(projectOrderInfo.getShipmentAmount());
|
||||||
updateOrder.setId(id);
|
updateOrder.setId(id);
|
||||||
projectOrderInfoMapper.updateProjectOrderInfo(updateOrder);
|
projectOrderInfoMapper.updateProjectOrderInfo(updateOrder);
|
||||||
//剔除流程
|
//剔除流程
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,8 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
|
||||||
@Autowired
|
@Autowired
|
||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProjectProductInfoBakService projectProductInfoBakService;
|
||||||
|
|
||||||
private static final List<String> CSS_EMAIL_LIST = Arrays.asList("wangxiaojun@pcitech.com", "huiwang@pcitech.com", "zhaoqian1@pcitech.com", "pci-ict@pcitech.com");
|
private static final List<String> CSS_EMAIL_LIST = Arrays.asList("wangxiaojun@pcitech.com", "huiwang@pcitech.com", "zhaoqian1@pcitech.com", "pci-ict@pcitech.com");
|
||||||
private static final List<String> REJECT_EMAIL_LIST = Arrays.asList("li.junjie@unisinsight.com", "chen.shenggang@unisinsight.com");
|
private static final List<String> REJECT_EMAIL_LIST = Arrays.asList("li.junjie@unisinsight.com", "chen.shenggang@unisinsight.com");
|
||||||
|
|
@ -438,6 +440,8 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
|
||||||
projectOrderInfo.setOrderStatus(ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode());
|
projectOrderInfo.setOrderStatus(ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode());
|
||||||
//根据提交类型判断折上折是 100% 98.8%或者98.5%
|
//根据提交类型判断折上折是 100% 98.8%或者98.5%
|
||||||
projectOrderInfo.setDiscountFold(BigDecimal.ONE);
|
projectOrderInfo.setDiscountFold(BigDecimal.ONE);
|
||||||
|
//备份数据
|
||||||
|
projectProductInfoBakService.saveBakData(existProjectOrderInfo.getOrderCode(), existProjectOrderInfo.getVersionCode());
|
||||||
// if ("0".equals(projectOrderInfo.getProcessTemplate())) {
|
// if ("0".equals(projectOrderInfo.getProcessTemplate())) {
|
||||||
// //直签 98.8
|
// //直签 98.8
|
||||||
// projectOrderInfo.setDiscountFold(new BigDecimal("0.985"));
|
// projectOrderInfo.setDiscountFold(new BigDecimal("0.985"));
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</foreach>)
|
</foreach>)
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<select id="countBakData" resultType="java.lang.Integer">
|
||||||
|
select count(1)
|
||||||
|
from project_product_info_bak
|
||||||
|
where order_code = #{orderCode}
|
||||||
|
and version_code = #{versionCode}
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertProjectProductInfo" parameterType="ProjectProductInfo" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertProjectProductInfo" parameterType="ProjectProductInfo" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into project_product_info
|
insert into project_product_info
|
||||||
|
|
@ -123,6 +129,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
catalogue_all_price = values(catalogue_all_price), price = values(price), all_price = values(all_price), guidance_discount = values(guidance_discount),
|
catalogue_all_price = values(catalogue_all_price), price = values(price), all_price = values(all_price), guidance_discount = values(guidance_discount),
|
||||||
discount = values(discount), remark = values(remark),tax_rate=values(tax_rate)
|
discount = values(discount), remark = values(remark),tax_rate=values(tax_rate)
|
||||||
</insert>
|
</insert>
|
||||||
|
<insert id="saveBakData">
|
||||||
|
delete from project_product_info_bak where order_code=#{orderCode} and version_code=#{versionCode};
|
||||||
|
insert into project_product_info_bak (order_code,version_code, product_bom_code, model, product_code, product_desc, quantity,
|
||||||
|
catalogue_price, catalogue_all_price, price, all_price, guidance_discount, discount, remark,tax_rate)
|
||||||
|
select t1.order_code,t1.version_code,t2.product_bom_code,t2.model,t2.product_code,t2.product_desc,t2.quantity,
|
||||||
|
t2.catalogue_price,t2.catalogue_all_price,t2.price,t2.all_price,t2.guidance_discount,t2.discount,t2.remark,t2.tax_rate
|
||||||
|
from project_order_info t1 left join project_product_info t2 on t1.project_id=t2.project_id
|
||||||
|
where t1.order_code=#{orderCode} and t1.version_code=#{versionCode}
|
||||||
|
</insert>
|
||||||
|
<insert id="restoreData">
|
||||||
|
delete from project_product_info where project_id= #{projectId} ;
|
||||||
|
insert into project_product_info (project_id, product_bom_code, model, product_code, product_desc, quantity,
|
||||||
|
catalogue_price, catalogue_all_price, price, all_price, guidance_discount, discount, remark,tax_rate)
|
||||||
|
select #{projectId},t1.product_bom_code,t1.model,t1.product_code,t1.product_desc,t1.quantity,
|
||||||
|
t1.catalogue_price,t1.catalogue_all_price,t1.price,t1.all_price,t1.guidance_discount,t1.discount,t1.remark,t1.tax_rate
|
||||||
|
from project_product_info_bak t1 where t1.order_code=#{orderCode} and t1.version_code=#{versionCode}
|
||||||
|
|
||||||
|
</insert>
|
||||||
|
|
||||||
<update id="updateProjectProductInfo" parameterType="ProjectProductInfo">
|
<update id="updateProjectProductInfo" parameterType="ProjectProductInfo">
|
||||||
update project_product_info
|
update project_product_info
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue