Browse Source

工单有问题

master
常熟吴彦祖 2 weeks ago
parent
commit
2b3d8f5134
  1. 6
      src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnSOIssueNotifyOrderMaterialListData.java
  2. 8
      src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.java
  3. 15
      src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl.java
  4. 3
      src/main/resources/mapper/autoWareHourceHaian/HaiAnNewIssureMapper.xml
  5. 9
      src/main/resources/mapper/autoWareHourceHaian/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.xml

6
src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnSOIssueNotifyOrderMaterialListData.java

@ -105,6 +105,12 @@ public class HaiAnSOIssueNotifyOrderMaterialListData extends HaiAnSOIssueNotifyO
*/
private String isInWh;
/**
* 所属订单行是否已推送WCS。来源 haian_SOIssueNotifyOrderList.push_wms_flag,Y=已推送。不落材料表,只给材料明细决定能否指定物料。- rqrq
*/
@com.baomidou.mybatisplus.annotation.TableField(exist = false)
private String pushWmsFlag;
/**
* 工单序列(扩展展示字段) - rqrq
*/

8
src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.java

@ -76,4 +76,12 @@ public interface HaiAnSOIssueNotifyOrderMaterialListAllocMapper {
List<String> listAllocBomItemNos(@Param("site") String site,
@Param("notifyNo") String notifyNo,
@Param("itemNo") BigDecimal itemNo);
/**
* @author rqrq
* @Description 读取订单行是否已推送WCS。保存指定前用来拒绝已推送行,查不到返回空。- rqrq
*/
String selectOrderPushWmsFlag(@Param("site") String site,
@Param("notifyNo") String notifyNo,
@Param("itemNo") BigDecimal itemNo);
}

15
src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl.java

@ -60,6 +60,8 @@ public class HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl implements HaiA
validateRequestKey(requestData);
// 保存前先按site+notifyNo读主单状态;未下达(UNISSUE)禁止改指定,避免未正式下达就锁定标签/批次 - rqrq
validateIssuedHeader(requestData);
// 订单行已推送WCS后库存任务已下发,再改指定会和立库任务不一致,直接拒绝。- rqrq
validateOrderNotPushed(requestData);
// 校验材料行仍存在:入参site+notifyNo+itemNo+BOMItemNo;找不到则拒绝保存,避免写孤儿指定记录 - rqrq
validateExistingMaterial(requestData);
List<HaiAnSOIssueNotifyOrderMaterialListAllocData> incoming = requestData.getAllocList();
@ -290,6 +292,19 @@ public class HaiAnSOIssueNotifyOrderMaterialListAllocServiceImpl implements HaiA
}
}
/**
* @author rqrq
* @Description 已推送WCS的订单行不允许再保存指定物料。按site+申请单+订单序号读 push_wms_flag,Y 则中断,避免立库已接单后改分配。- rqrq
*/
private void validateOrderNotPushed(HaiAnNoOrderMaterialAllocRequestData requestData) {
// 读取订单行推送标记;查询失败中断保存,不能把未知状态当成未推送。- rqrq
String pushWmsFlag = allocMapper.selectOrderPushWmsFlag(
requestData.getSite(), requestData.getNotifyNo(), requestData.getItemNo());
if ("Y".equalsIgnoreCase(StringUtils.defaultString(pushWmsFlag).trim())) {
throw new RuntimeException("该订单行已推送WCS,不允许指定物料");
}
}
private void validateExistingMaterial(HaiAnNoOrderMaterialAllocRequestData requestData) {
HaiAnSOIssueNotifyOrderMaterialListData query = new HaiAnSOIssueNotifyOrderMaterialListData();
query.setSite(requestData.getSite());

3
src/main/resources/mapper/autoWareHourceHaian/HaiAnNewIssureMapper.xml

@ -47,7 +47,8 @@
b.need_date AS needDate,
a.remark,
a.batch_no AS batchNo,
ISNULL(pa.is_in_wh, '未维护') AS isInWh
ISNULL(pa.is_in_wh, '未维护') AS isInWh,
b.push_wms_flag AS pushWmsFlag
FROM haian_SOIssueNotifyOrderMaterialList a WITH (NOLOCK)
LEFT JOIN haian_SOIssueNotifyOrderList b WITH (NOLOCK)
ON a.site = b.site

9
src/main/resources/mapper/autoWareHourceHaian/HaiAnSOIssueNotifyOrderMaterialListAllocMapper.xml

@ -154,6 +154,15 @@
AND notify_no = #{notifyNo}
</delete>
<!-- rqrq - 读取订单行推送标记。保存指定前使用,不用NOLOCK,避免把未提交的未推送状态当成可指定 -->
<select id="selectOrderPushWmsFlag" resultType="java.lang.String">
SELECT push_wms_flag
FROM haian_SOIssueNotifyOrderList
WHERE site = #{site}
AND notify_no = #{notifyNo}
AND item_no = #{itemNo}
</select>
<!-- 保存材料前找出仍有指定的BOM行,调用方对比本次保留的物料行 - rqrq -->
<select id="listAllocBomItemNos" resultType="java.lang.String">
SELECT DISTINCT BOM_item_no

Loading…
Cancel
Save