This commit is contained in:
郭飞 2025-05-22 15:04:08 +08:00
commit 939b3aed5b
9 changed files with 78 additions and 18 deletions

View File

@ -205,4 +205,13 @@ public class DeliveryController {
} }
return AjaxResult.me().setErrorCode(-1).setMessage("修改失败"); return AjaxResult.me().setErrorCode(-1).setMessage("修改失败");
} }
/**
* 获取采购订单详情
*/
@PostMapping(value = "/getDeliveryReceiveDetail")
public AjaxResult GetDeliveryReceiveDetail(@RequestBody JSONObject in) {
List<String> nameList = (List<String>) in.get("nameList");
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getDeliveryReceiveDetail(nameList));
}
} }

View File

@ -286,20 +286,23 @@ public class MaterialReceiveActController {
int result = a.compareTo(b); int result = a.compareTo(b);
hashMap2.put("QTY", mathMaterialQuantity); hashMap2.put("QTY", mathMaterialQuantity);
IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2); IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2);
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); // 去掉接受收数量更新
// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2);
break; break;
} else if (mathMaterialQuantity.compareTo(mathQty) == 1) {//条码数量大于剩余数量 } else if (mathMaterialQuantity.compareTo(mathQty) == 1) {//条码数量大于剩余数量
hashMap2.put("QTY", qty); hashMap2.put("QTY", qty);
mathMaterialQuantity = mathMaterialQuantity.subtract(mathQty); mathMaterialQuantity = mathMaterialQuantity.subtract(mathQty);
IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2); IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2);
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); // 去掉接受收数量更新
// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2);
System.out.println("a is greater than b"); System.out.println("a is greater than b");
continue; continue;
} else {//条码数量小于订单剩余数量 } else {//条码数量小于订单剩余数量
System.out.println("a is less than b"); System.out.println("a is less than b");
hashMap2.put("QTY", mathMaterialQuantity); hashMap2.put("QTY", mathMaterialQuantity);
IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2); IDMFrameServiceProxy.getSqlTemplate().update(insertSql, hashMap2);
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2); // 去掉接受收数量更新
// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap2);
break; break;
} }
} }

View File

@ -2303,12 +2303,7 @@ public class SAPToWMSController {
@ApiOperation(value = "物料消耗") @ApiOperation(value = "物料消耗")
@RequestMapping("/sapwms_materialconsume_request") @RequestMapping("/sapwms_materialconsume_request")
public WMSToSAPReturn sapMaterialConsume_Request(HttpServletRequest httpRequest, @RequestBody SAPToWMSRequest request) { public WMSToSAPReturn sapMaterialConsume_Request(HttpServletRequest httpRequest, @RequestBody SAPToWMSRequest request) {
//Map<String,Object> head = request.getHEAD(); Map<String,Object> head = request.getHEAD();
Map<String,Object> head = new HashMap<>();
head.put("INTF_ID",request.getHEAD().get("INTFID"));
head.put("SRC_SYSTEM",request.getHEAD().get("SRCMSGID"));
head.put("DEST_SYSTEM","WMS");
head.put("SRC_MSGID","PP103");
//开启事务 //开启事务
IDMFrameServiceProxy.getTransactionManager().beginTransaction(); IDMFrameServiceProxy.getTransactionManager().beginTransaction();
try { try {
@ -2350,7 +2345,7 @@ public class SAPToWMSController {
Map<String, Object> errorReturn = new HashMap<>(); Map<String, Object> errorReturn = new HashMap<>();
errorReturn.put("STATUS", "E"); errorReturn.put("STATUS", "E");
errorReturn.put("MSGTXT", e.getMessage()); errorReturn.put("MSGTXT", e.getMessage());
errorReturn.put("HEAD", request.getHEAD()); //errorReturn.put("HEAD", request.getHEAD());
WMSToSAPReturn WMSToSAPReturn = new WMSToSAPReturn(head, errorReturn); WMSToSAPReturn WMSToSAPReturn = new WMSToSAPReturn(head, errorReturn);
ErpMessageLog erpMessageLog = new ErpMessageLog(); ErpMessageLog erpMessageLog = new ErpMessageLog();
erpMessageLog.setServerName(System.getProperty("Seq")); erpMessageLog.setServerName(System.getProperty("Seq"));

View File

@ -109,6 +109,13 @@ public interface DeliveryDao {
*/ */
List<DeliveryReceiveDetailVo> getReceiveDetail(@Param("nameList") List<String> nameList); List<DeliveryReceiveDetailVo> getReceiveDetail(@Param("nameList") List<String> nameList);
/**
* 根据到库单获取采购单名称
* @param nameList 到库单
* @return 采购单名称列表
*/
List<DeliveryReceiveDetailVo> getDeliveryReceiveDetail(@Param("nameList") List<String> nameList);
/** /**
* 获取到货单 * 获取到货单
* @param dto 请求 * @param dto 请求
@ -152,4 +159,11 @@ public interface DeliveryDao {
@MapKey("storeCharge") @MapKey("storeCharge")
List<Map<String, Object>> getStoreChargeSort(@Param("siteName") String siteName, List<Map<String, Object>> getStoreChargeSort(@Param("siteName") String siteName,
@Param("documentName") String documentName); @Param("documentName") String documentName);
/**
* 更新入库单数量
* @param relationDto
* @return
*/
int updateMaterialReceiveRequestDetailQty(@Param("dto") DeliveryRelationDto relationDto);
} }

View File

@ -95,7 +95,12 @@ public interface IDeliveryService {
* @return 采购单名称列表 * @return 采购单名称列表
*/ */
List<DeliveryReceiveDetailVo> getReceiveDetail(List<String> nameList); List<DeliveryReceiveDetailVo> getReceiveDetail(List<String> nameList);
/**
* 根据到库单获取采购单名称
* @param nameList 到库单
* @return 采购单名称列表
*/
List<DeliveryReceiveDetailVo> getDeliveryReceiveDetail(List<String> nameList);
/** /**
* 获取到货单 * 获取到货单
* @param dto 请求 * @param dto 请求

View File

@ -50,6 +50,14 @@ public class DeliveryServiceImpl implements IDeliveryService {
if (deliveryDao.createRelation(res) <= 0) { if (deliveryDao.createRelation(res) <= 0) {
throw new GlobalException("添加到库单关系失败"); throw new GlobalException("添加到库单关系失败");
} }
//更新采购订单行项的已入库数量
for (DeliveryRelationDto re : res) {
if (deliveryDao.updateMaterialReceiveRequestDetailQty(re) <= 0){
throw new GlobalException("更新采购单入库数量失败");
}
}
// 添加到库单 // 添加到库单
return deliveryDao.createDelivery(dto, DeliveryStateEnums.CREATE.getCode()); return deliveryDao.createDelivery(dto, DeliveryStateEnums.CREATE.getCode());
} }
@ -120,6 +128,11 @@ public class DeliveryServiceImpl implements IDeliveryService {
return deliveryDao.getReceiveDetail(nameList); return deliveryDao.getReceiveDetail(nameList);
} }
@Override
public List<DeliveryReceiveDetailVo> getDeliveryReceiveDetail(List<String> nameList) {
return deliveryDao.getDeliveryReceiveDetail(nameList);
}
@Override @Override
public PageInfo<MaterialDelivery> getDeliveryList(PageDto dto) { public PageInfo<MaterialDelivery> getDeliveryList(PageDto dto) {
PageMethod.startPage(dto.getPageNum(), dto.getPageSize()); PageMethod.startPage(dto.getPageNum(), dto.getPageSize());

View File

@ -147,7 +147,9 @@ public class MESToWMSServiceImpl implements MESToWMSService {
} }
// 将工单的物料消耗数据传给SAP // 将工单的物料消耗数据传给SAP
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate); String undoId = toSAPService.mesMaterialConsume("MES",payMentDate);
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功"); Map<String, Object> undoidMap = new HashMap<>();
undoidMap.put("undoid", undoId);
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap);
loginfo.setResultCode("0"); loginfo.setResultCode("0");
loginfo.setReturnMsg(JSONObject.toJSONString(result)); loginfo.setReturnMsg(JSONObject.toJSONString(result));
// 消息保存日志erp推送wms的数据写入表BS_ERPMESSAGELOG中 // 消息保存日志erp推送wms的数据写入表BS_ERPMESSAGELOG中

View File

@ -48,9 +48,10 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
hashMap.put("RECEIVEREQUESTNAME", item.get("RECEIVEREQUESTNAME").toString()); hashMap.put("RECEIVEREQUESTNAME", item.get("RECEIVEREQUESTNAME").toString());
hashMap.put("RECEIVEREQUESTDETAILNAME", item.get("RECEIVEREQUESTDETAILNAME").toString()); hashMap.put("RECEIVEREQUESTDETAILNAME", item.get("RECEIVEREQUESTDETAILNAME").toString());
hashMap.put("QTY", item.get("QTY").toString()); hashMap.put("QTY", item.get("QTY").toString());
String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - :QTY " // 去掉接受收数量更新
+ "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME"; // String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - :QTY "
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap); // + "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap);
String deleteSql = "DELETE FROM MATERIALPACKINGSUB m WHERE m.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME"; String deleteSql = "DELETE FROM MATERIALPACKINGSUB m WHERE m.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME";
IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap); IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap);
@ -224,7 +225,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
break; break;
} }
if (queryMaterialpackingList.isEmpty()){ if (queryMaterialpackingList.isEmpty()){
throw new Exception("冲销失败,物料:" + matnr + " " + werks + " " + lgort + " " + meins + "库存短缺"); throw new Exception("冲销失败,没有匹配该物料凭证" + mblnr + "的消耗记录无法冲销");
}else { }else {
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
} }

View File

@ -159,8 +159,8 @@
AND AA.SDK_ID = m.SDK_ID AND AA.PHASE = m3.PHASE AND AA.SDK_ID = m.SDK_ID AND AA.PHASE = m3.PHASE
LEFT JOIN BB ON BB.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME LEFT JOIN BB ON BB.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME
AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME
AND BB.SDK_ID = m.SDK_ID AND COALESCE(BB.SDK_ID, 'N/A') = COALESCE(m.SDK_ID, 'N/A')
AND BB.PHASE = m3.PHASE AND COALESCE(BB.PHASE, 'N/A') = COALESCE(m3.PHASE, 'N/A')
<if test="deliveryName != null"> <if test="deliveryName != null">
INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME
</if> </if>
@ -501,4 +501,22 @@
ORDER BY A.CHARGE ORDER BY A.CHARGE
) TTT ) TTT
</select> </select>
<update id="updateMaterialReceiveRequestDetailQty">
UPDATE MATERIALRECEIVEREQUESTDETAIL
SET RECEIVEDQUANTITY = RECEIVEDQUANTITY + #{dto.deliveryNum}
WHERE RECEIVEREQUESTNAME = #{dto.receiveRequestName}
AND RECEIVEREQUESTDETAILNAME = #{dto.receiveRequestDetailName}
AND MATERIALSPECNAME = #{dto.materialSpecName}
</update>
<select id="getDeliveryReceiveDetail" resultType="com.cim.idm.model.vo.DeliveryReceiveDetailVo">
SELECT receiveRequestName, materialSpecName, requestQuantity, requestQuantity - receivedQuantity as deliveryNum, RECEIVEREQUESTDETAILNAME
FROM MATERIALRECEIVEREQUESTDETAIL
WHERE RECEIVEREQUESTNAME in
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
#{name}
</foreach>
order by RECEIVEREQUESTDETAILNAME
</select>
</mapper> </mapper>