diff --git a/oms_web/oms_vue/src/api/project/order.js b/oms_web/oms_vue/src/api/project/order.js
index 8a745ef6..5c7b0aa9 100644
--- a/oms_web/oms_vue/src/api/project/order.js
+++ b/oms_web/oms_vue/src/api/project/order.js
@@ -123,10 +123,10 @@ export function purchaseSnList(purchaseNo, orderCode) {
}
// 订单绑定SN码
-export function bindOrderSnCodes(orderCode, productCode, productSnList) {
+export function bindOrderSnCodes(orderCode, productCode, purchaseNo, orderId, purchaseId, productSnList) {
return request({
url: '/project/order/vue/bindOrderSnCodes',
method: 'post',
- data: { orderCode, productCode, productSnList }
+ data: { orderCode, productCode, purchaseNo, orderId, purchaseId, productSnList }
})
}
diff --git a/oms_web/oms_vue/src/views/inventory/execution/index.vue b/oms_web/oms_vue/src/views/inventory/execution/index.vue
index 67470eb2..0f06b574 100644
--- a/oms_web/oms_vue/src/views/inventory/execution/index.vue
+++ b/oms_web/oms_vue/src/views/inventory/execution/index.vue
@@ -277,10 +277,10 @@
type="number"
:disabled="String(scope.row.status) === '0'"
:min="scope.row.bhNum || 0"
- :max="scope.row.cgNum || 0"
+ :max="calculateMaxPhNum(scope.row, item)"
size="small"
class="stocking-bind-input"
- @input="handleBindNumInput(scope.row)"
+ @input="handleBindNumInput(scope.row, item)"
@change="handleBindNumChange(scope.row, item)"
>
@@ -321,7 +321,7 @@
关 闭
- 保存修改
+
@@ -664,7 +664,7 @@ export default {
},
/** 撤单按钮操作 */
handleRecall(row) {
- this.$modal.confirm('撤回此单后,该合同下所有出库单以及关联的发货纪录将同步删除,操作不可恢复,请确认后执行!').then(function() {
+ this.$modal.confirm('撤回此单后,该合同绑定的采购单和SN码信息将同步解除,该合同所有出库单以及关联的发货纪录将同步删除,操作不可恢复,请确认后执行!').then(function() {
return recallExecution(row.id);
}).then(() => {
this.getList();
@@ -711,8 +711,36 @@ export default {
}
return defaultValue;
},
- handleBindNumInput(row) {
- this.$set(this.stockingBindDraftMap, row.purchaseId, row.phNum);
+ handleBindNumInput(row, item) {
+ const rawValue = row.phNum === '' || row.phNum === null || row.phNum === undefined ? 0 : Number(row.phNum);
+ const minValue = row.bhNum === '' || row.bhNum === null || row.bhNum === undefined ? 0 : Number(row.bhNum);
+ const maxValue = this.calculateMaxPhNum(row, item);
+
+ const validValue = Math.max(minValue, Math.min(rawValue, maxValue));
+
+ row.phNum = validValue;
+ this.$set(this.stockingBindDraftMap, row.purchaseId, validValue);
+ },
+ calculateMaxPhNum(row, item) {
+ const originalPhNum = row.originalPhNum === '' || row.originalPhNum === null || row.originalPhNum === undefined ? 0 : Number(row.originalPhNum);
+ const originalKyNum = row.originalKyNum === '' || row.originalKyNum === null || row.originalKyNum === undefined ? 0 : Number(row.originalKyNum);
+ const orderNum = item ? (item.orderNum === '' || item.orderNum === null || item.orderNum === undefined ? 0 : Number(item.orderNum)) : 0;
+
+ const maxPhysical = originalPhNum + originalKyNum;
+
+ let otherRowsPhNumSum = 0;
+ if (item && item.bindList) {
+ item.bindList.forEach(b => {
+ if (b.purchaseId !== row.purchaseId) {
+ const p = Number(b.phNum) || 0;
+ otherRowsPhNumSum += p;
+ }
+ });
+ }
+
+ const maxAllowedByOrder = orderNum - otherRowsPhNumSum;
+
+ return Math.min(maxPhysical, maxAllowedByOrder);
},
loadBindPageData(orderCode, item) {
return productMatchBindList(orderCode, item.productCode, {
@@ -756,50 +784,20 @@ export default {
},
handleBindNumChange(row, item) {
const rawValue = row.phNum === '' || row.phNum === null || row.phNum === undefined ? 0 : Number(row.phNum);
- const cgNum = row.cgNum === '' || row.cgNum === null || row.cgNum === undefined ? 0 : Number(row.cgNum);
- const originalKyNum = row.originalKyNum === '' || row.originalKyNum === null || row.originalKyNum === undefined ? 0 : Number(row.originalKyNum);
- const bhNum = row.bhNum === '' || row.bhNum === null || row.bhNum === undefined ? 0 : Number(row.bhNum);
const originalPhNum = row.originalPhNum === '' || row.originalPhNum === null || row.originalPhNum === undefined ? 0 : Number(row.originalPhNum);
+ const originalKyNum = row.originalKyNum === '' || row.originalKyNum === null || row.originalKyNum === undefined ? 0 : Number(row.originalKyNum);
+ const minValue = row.bhNum === '' || row.bhNum === null || row.bhNum === undefined ? 0 : Number(row.bhNum);
+ const maxValue = this.calculateMaxPhNum(row, item);
- const orderNum = item ? (item.orderNum === '' || item.orderNum === null || item.orderNum === undefined ? 0 : Number(item.orderNum)) : 0;
- const originalTotalPhNum = item ? (item.originalTotalPhNum === '' || item.originalTotalPhNum === null || item.originalTotalPhNum === undefined ? 0 : Number(item.originalTotalPhNum)) : 0;
-
- let nextValue = Math.max(rawValue, bhNum);
-
- const maxPhysical = originalPhNum + originalKyNum;
-
- let otherRowsDiffSum = 0;
- if (item && item.bindList) {
- item.bindList.forEach(b => {
- if (b.purchaseId !== row.purchaseId) {
- const p = Number(b.phNum) || 0;
- const op = Number(b.originalPhNum) || 0;
- otherRowsDiffSum += (p - op);
- }
- });
- }
-
- const maxAllowedDiff = orderNum - originalTotalPhNum - otherRowsDiffSum;
- const maxAllowedByOrder = originalPhNum + maxAllowedDiff;
-
- let upperLimit = Math.min(maxPhysical, maxAllowedByOrder);
-
- if (nextValue > upperLimit) {
- nextValue = upperLimit;
- }
- if (nextValue < bhNum) {
- nextValue = bhNum;
- }
- if (nextValue < 0) {
- nextValue = 0;
- }
+ const nextValue = Math.max(minValue, Math.min(rawValue, maxValue));
row.phNum = nextValue;
const diff = nextValue - originalPhNum;
row.kyNum = originalKyNum - diff;
- this.$set(this.stockingBindDraftMap, row.purchaseId, nextValue); },
+ this.$set(this.stockingBindDraftMap, row.purchaseId, nextValue);
+ },
handleSaveStockingBind() {
const changedList = [];
this.stockingDetailList.forEach(item => {
@@ -1032,7 +1030,7 @@ export default {
}
saveQuotaPromise.then(() => {
- return bindOrderSnCodes(this.stockingDetailRow.orderCode, this.outerSnProductRow.productCode, this.outerSnSelectedList);
+ return bindOrderSnCodes(this.stockingDetailRow.orderCode, this.outerSnProductRow.productCode, this.outerSnBindRow.purchaseNo, this.stockingDetailRow.id, this.outerSnBindRow.purchaseId, this.outerSnSelectedList);
}).then(response => {
loading.close();
this.$message.success(`成功分配 ${this.outerSnSelectedList.length} 个SN码` + (changedList.length > 0 ? ',并同步保存了配额修改' : ''));
@@ -1282,20 +1280,6 @@ export default {
margin-bottom: 8px;
}
-.outer-sn-info {
- font-size: 13px;
- color: #606266;
-}
-
-.outer-sn-info-label {
- color: #909399;
-}
-
-.outer-sn-info-value {
- color: #303133;
- font-weight: 500;
-}
-
.outer-sn-stats {
display: flex;
align-items: center;
@@ -1449,14 +1433,6 @@ export default {
color: #909399;
}
-.outer-sn-summary {
- margin-bottom: 12px;
-}
-
-.outer-sn-warehouse-table {
- margin-bottom: 12px;
-}
-
.stocking-status {
display: inline-flex;
align-items: center;
@@ -1488,66 +1464,6 @@ export default {
border: 1px solid #d9ecff;
}
-.stocking-status--green {
- color: #67c23a;
- background: #f0f9eb;
- border: 1px solid #e1f3d8;
-}
-
-.stocking-status--green {
- color: #67c23a;
- background: #f0f9eb;
- border: 1px solid #e1f3d8;
-}
-
-9399;
-}
-
-.outer-sn-summary {
- margin-bottom: 12px;
-}
-
-.outer-sn-warehouse-table {
- margin-bottom: 12px;
-}
-
-.stocking-status {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- min-width: 64px;
- height: 24px;
- padding: 0 10px;
- border-radius: 12px;
- font-size: 12px;
- line-height: 1;
- font-weight: 500;
-}
-
-.stocking-status--yellow {
- color: #e6a23c;
- background: #fdf6ec;
- border: 1px solid #faecd8;
-}
-
-.stocking-status--purple {
- color: #8a4f83;
- background: #f6f0f7;
- border: 1px solid #eadfec;
-}
-
-.stocking-status--blue {
- color: #409eff;
- background: #ecf5ff;
- border: 1px solid #d9ecff;
-}
-
-.stocking-status--green {
- color: #67c23a;
- background: #f0f9eb;
- border: 1px solid #e1f3d8;
-}
-
.stocking-status--green {
color: #67c23a;
background: #f0f9eb;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/mail/TemplateMailUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/mail/TemplateMailUtil.java
index c2fb0b3b..bb0e289e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/mail/TemplateMailUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/mail/TemplateMailUtil.java
@@ -42,15 +42,15 @@ public class TemplateMailUtil {
* @Date 2025/07/29 09:55
*/
public static void sendTemplateMail(List toEmail, String title, MailTemplate path, Dict dict) {
- sendTemplateMail(toEmail, title, path, dict, null, true);
+ sendTemplateMail(toEmail, title, path, dict, null, Boolean.TRUE);
}
public static void sendTemplateMail(List toEmail, String title, MailTemplate path, Dict dict, List toCssEmail) {
- sendTemplateMail(toEmail, title, path, dict, toCssEmail, true);
+ sendTemplateMail(toEmail, title, path, dict, toCssEmail, Boolean.TRUE);
}
public static void sendTemplateMailNotImage(List toEmail, String title, MailTemplate path, Dict dict) {
- sendTemplateMail(toEmail, title, path, dict, null, false);
+ sendTemplateMail(toEmail, title, path, dict, null, Boolean.FALSE);
}
public static void sendTemplateMail(List toEmail, String title, MailTemplate path, Dict dict, List toCssEmail, Boolean addImage) {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
index 43bb512a..418044d0 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -1683,12 +1683,23 @@ public class ExcelUtil
Cell cell = row.getCell(column);
if (StringUtils.isNotNull(cell))
{
- if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA)
+ if (cell.getCellType() == CellType.FORMULA)
+ {
+ try
+ {
+ val = cell.getStringCellValue();
+ }
+ catch (IllegalStateException e)
+ {
+ val = String.valueOf(cell.getNumericCellValue());
+ }
+ }
+ else if (cell.getCellType() == CellType.NUMERIC)
{
val = cell.getNumericCellValue();
if (DateUtil.isCellDateFormatted(cell))
{
- val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换
+ val = DateUtil.getJavaDate((Double) val);
}
else
{
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueProjectOrderInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueProjectOrderInfoController.java
index 22fe4b7e..ff90e605 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueProjectOrderInfoController.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/VueProjectOrderInfoController.java
@@ -10,6 +10,7 @@ import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.sip.domain.OmsPurchaseOrderMap;
import com.ruoyi.sip.domain.ProjectOrderFileLog;
import com.ruoyi.sip.domain.ProjectOrderInfo;
+import com.ruoyi.sip.dto.BindOrderSnCodesDto;
import com.ruoyi.sip.dto.OrderProductMatchBindDto;
import com.ruoyi.sip.dto.OrderProductMatchDto;
import com.ruoyi.sip.flowable.domain.Todo;
@@ -198,11 +199,8 @@ public class VueProjectOrderInfoController extends BaseController {
* 订单绑定SN码
*/
@PostMapping("/bindOrderSnCodes")
- public AjaxResult bindOrderSnCodes(@RequestBody Map params) {
- String orderCode = (String) params.get("orderCode");
- String productCode = (String) params.get("productCode");
- List productSnList = (List) params.get("productSnList");
- return toAjax(projectOrderInfoService.bindOrderSnCodes(orderCode, productCode, productSnList));
+ public AjaxResult bindOrderSnCodes(@RequestBody BindOrderSnCodesDto params) {
+ return toAjax(projectOrderInfoService.bindOrderSnCodes(params));
}
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/BindOrderSnCodesDto.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/BindOrderSnCodesDto.java
new file mode 100644
index 00000000..97efd187
--- /dev/null
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/BindOrderSnCodesDto.java
@@ -0,0 +1,31 @@
+package com.ruoyi.sip.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BindOrderSnCodesDto {
+
+ /** 合同编号 */
+ private String orderCode;
+
+ /** 产品编码 */
+ private String productCode;
+
+ /** 采购单号 */
+ private String purchaseNo;
+
+ /** 订单主键 */
+ private Long orderId;
+
+ /** 采购单主键 */
+ private Long purchaseId;
+
+ /** SN码列表 */
+ private List productSnList;
+}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java
index 5ebfbeb7..eeb3ea1e 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java
@@ -87,4 +87,6 @@ public interface InventoryInfoMapper
int clearOrderCodeByOrderCodeAndProductCode(@Param("orderCode") String orderCode, @Param("productCode") String productCode);
int updateOrderCodeByProductSnList(@Param("productSnList") List productSnList, @Param("orderCode") String orderCode);
+
+ int countByOrderCodeAndPurchaseNo(@Param("orderCode") String orderCode, @Param("purchaseNo") String purchaseNo);
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapMapper.java
index b855f5b2..e104aa9f 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapMapper.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapMapper.java
@@ -10,4 +10,6 @@ public interface OmsPurchaseOrderMapMapper {
int insertOmsPurchaseOrderMap(OmsPurchaseOrderMap omsPurchaseOrderMap);
int updateOmsPurchaseOrderMap(OmsPurchaseOrderMap omsPurchaseOrderMap);
+
+ int initOmsPurchaseOrderMapBindNum(@Param("orderId") Long orderId);
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java
index 8e4ac002..40739d3b 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java
@@ -6,6 +6,7 @@ import com.ruoyi.sip.domain.OmsPurchaseOrderMap;
import com.ruoyi.sip.domain.ProjectOrderFileLog;
import com.ruoyi.sip.domain.ProjectOrderInfo;
import com.ruoyi.sip.dto.ApiDataQueryDto;
+import com.ruoyi.sip.dto.BindOrderSnCodesDto;
import com.ruoyi.sip.dto.OrderProductMatchBindDto;
import com.ruoyi.sip.dto.OrderProductMatchDto;
import com.ruoyi.sip.dto.OrderProductMatchSnDto;
@@ -119,6 +120,6 @@ public interface IProjectOrderInfoService
OrderProductMatchSnDto selectPurchaseSnList(String purchaseNo, String orderCode);
- int bindOrderSnCodes(String orderCode, String productCode, List productSnList);
+ int bindOrderSnCodes(BindOrderSnCodesDto params);
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java
index 4600ffff..35f367e7 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java
@@ -10,6 +10,8 @@ import com.ruoyi.sip.dto.inventory.ProductDetail;
import com.ruoyi.sip.dto.inventory.ProductWarehouseInfo;
import com.ruoyi.sip.flowable.service.TodoService;
import com.ruoyi.sip.mapper.InventoryDeliveryMapper;
+import com.ruoyi.sip.mapper.InventoryInfoMapper;
+import com.ruoyi.sip.mapper.OmsPurchaseOrderMapMapper;
import com.ruoyi.sip.mapper.ProjectOrderInfoMapper;
import com.ruoyi.sip.service.*;
import com.ruoyi.sip.vo.DeliveryApproveVo;
@@ -56,11 +58,15 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
@Autowired
private InventoryDeliveryMapper deliveryMapper;
@Autowired
+ private InventoryInfoMapper inventoryInfoMapper;
+ @Autowired
private TodoService todoService;
@Autowired
private IProjectProductInfoBakService projectProductInfoBakService;
@Autowired
private IProjectOrderInfoRecallService projectOrderInfoRecallService;
+ @Autowired
+ private OmsPurchaseOrderMapMapper omsPurchaseOrderMapMapper;
@Override
public ExecutionOrderVo selectInfo(Long id) {
ExecutionOrderVo vo = new ExecutionOrderVo();
@@ -278,6 +284,14 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
//还原库存
inventoryInfoService.recallByOrderCode(Collections.singletonList(projectOrderInfo.getOrderCode()));
+ //解除订单与SN码的绑定
+ List recallProductInfos = projectProductInfoService.selectProjectProductInfoListByProjectId(Collections.singletonList(projectOrderInfo.getProjectId()));
+ recallProductInfos.stream()
+ .map(ProjectProductInfo::getProductBomCode)
+ .distinct()
+ .forEach(productCode -> inventoryInfoMapper.clearOrderCodeByOrderCodeAndProductCode(projectOrderInfo.getOrderCode(), productCode));
+ //初始化订单与采购单的绑定数量(bindNum = 0)
+ omsPurchaseOrderMapMapper.initOmsPurchaseOrderMapBindNum(id);
//累计发货
List inventoryDeliveries = deliveryMapper.selectQuantityByOrderCodeStatus(projectOrderInfo.getOrderCode(), InventoryDelivery.DeliveryStatusEnum.CONFIRM_DELIVERY.getCode());
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java
index 9e4d24ac..e8ce6fa3 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java
@@ -2909,7 +2909,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
}
ProjectOrderInfo projectOrderInfo = projectOrderInfoMapper.selectProjectOrderInfoById(omsPurchaseOrderMap.getOrderId());
if (projectOrderInfo != null) {
- refreshOrderStockingStatus(projectOrderInfo.getOrderCode());
+ this.refreshOrderStockingStatus(projectOrderInfo.getOrderCode());
}
return result;
}
@@ -2935,19 +2935,40 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
}
@Override
- public int bindOrderSnCodes(String orderCode, String productCode, List productSnList) {
- if (StringUtils.isEmpty(orderCode) || StringUtils.isEmpty(productCode)) {
+ public int bindOrderSnCodes(BindOrderSnCodesDto params) {
+ if (StringUtils.isEmpty(params.getOrderCode()) || StringUtils.isEmpty(params.getProductCode())) {
return 0;
}
- inventoryInfoMapper.clearOrderCodeByOrderCodeAndProductCode(orderCode, productCode);
+ inventoryInfoMapper.clearOrderCodeByOrderCodeAndProductCode(params.getOrderCode(), params.getProductCode());
int result = 1;
- if (CollUtil.isNotEmpty(productSnList)) {
- result = inventoryInfoMapper.updateOrderCodeByProductSnList(productSnList, orderCode);
+ if (CollUtil.isNotEmpty(params.getProductSnList())) {
+ result = inventoryInfoMapper.updateOrderCodeByProductSnList(params.getProductSnList(), params.getOrderCode());
}
- refreshOrderStockingStatus(orderCode);
+ //根据实际绑定的sn码修改订单与采购单的绑定数
+ if (params.getOrderId() != null && params.getPurchaseId() != null && StringUtils.isNotEmpty(params.getPurchaseNo())) {
+ int actualBindNum = inventoryInfoMapper.countByOrderCodeAndPurchaseNo(params.getOrderCode(), params.getPurchaseNo());
+ OmsPurchaseOrderMap map = omsPurchaseOrderMapMapper.selectByOrderIdAndPurchaseId(params.getOrderId(), params.getPurchaseId());
+ if (map == null) {
+ map = new OmsPurchaseOrderMap();
+ map.setOrderId(params.getOrderId());
+ map.setPurchaseId(params.getPurchaseId());
+ map.setBindNum(actualBindNum);
+ omsPurchaseOrderMapMapper.insertOmsPurchaseOrderMap(map);
+ } else {
+ map.setBindNum(actualBindNum);
+ omsPurchaseOrderMapMapper.updateOmsPurchaseOrderMap(map);
+ }
+ }
+ //更新订单的备货状态
+ this.refreshOrderStockingStatus(params.getOrderCode());
return result;
}
+ /**
+ * 更新订单的备货状态
+ *
+ * @param orderCode
+ */
private void refreshOrderStockingStatus(String orderCode) {
if (StringUtils.isEmpty(orderCode)) {
return;
diff --git a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml
index 0d718c31..aaed3aee 100644
--- a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml
+++ b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml
@@ -201,7 +201,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update oms_inventory_info
- set inventory_status = 0,outer_code=null,order_code=null
+ set inventory_status = 0,outer_code=null
where id in
#{id}
@@ -209,7 +209,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update oms_inventory_info
- set inventory_status = 0,outer_code=null
+ set inventory_status = 0, outer_code = null, order_code = null
where outer_code in (select outer_code from oms_inventory_outer where order_code in
#{orderCode}
)
@@ -233,6 +233,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
delete from oms_inventory_info where id = #{id}
diff --git a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapMapper.xml
index d10b5f3a..101210ca 100644
--- a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapMapper.xml
+++ b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapMapper.xml
@@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, order_id, purchase_id, bind_num
from oms_purchase_order_map
where order_id = #{orderId}
- and purchase_id = #{purchaseId}
+ and purchase_id = #{purchaseId}
limit 1
@@ -30,4 +30,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
+
+ update oms_purchase_order_map
+ set bind_num = 0
+ where order_id = #{orderId}
+
+