update 到货单修改统计入库、收货数量

This commit is contained in:
18110972313 2025-05-21 18:17:54 +08:00
parent 1cf744be5b
commit 68b750b647
7 changed files with 161 additions and 5 deletions

View File

@ -6441,7 +6441,7 @@ public class ToSAPServiceImpl {
List<Map<String, Object>> qmsDataList = new ArrayList<>();
//依据采购订单查询待入库的物料(MATERIALPACKING)
String querySql = " SELECT " +
" SUM(DR.DELIVERYNUM) AS MATERIALQUANTITY,\n" +
" DR.DELIVERYNUM AS MATERIALQUANTITY,\n" +
" DR.RECEIVEREQUESTNAME,\n" +
" DR.RECEIVEREQUESTDETAILNAME,\n" +
" P.ERPLOCATION,\n" +
@ -6486,7 +6486,7 @@ public class ToSAPServiceImpl {
"\t\t,P.OQARESULT, P.OQARESULTSTATE, P.UNIT, P.FUNIT, P.REMARK, P.SUPPLIERNAME\n" +
"\t\t,P.ERPFACTORY, P.ERPLOCATION, BF.IQCFLAG, R.RECEIVEREQUESTTYPE\n" +
"\t\t,EL.DESCRIPTION, SP.SUPPLIERNO,SP.SUPPLIERNAME,MP.MATERIALSPECNAME\n" +
"\t\t,MP.DESC_CN, MP.MATERIALGROUP, P.LOCATIONNAME, P.RECEIVETIME,P.TRUEGG ";
"\t\t,MP.DESC_CN, MP.MATERIALGROUP, P.LOCATIONNAME, P.RECEIVETIME,P.TRUEGG,DR.DELIVERYNUM ";
Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("DELIVERYNAME", deliveryName);
hashMap.put("SITENAME", siteName);

View File

@ -174,7 +174,9 @@ public class DeliveryController {
if (deliveryType.equals(DeliveryTypeEnums.BATCH.getCode())) {
// 批次
return AjaxResult.me().setSuccess(true).setResultObj(
deliveryService.getStoreDetail(storeDetailDto.getDocumentName(), storeDetailDto.getSiteName(), nameList, deliveryName));
deliveryService.getDeliveryStoreDetail(storeDetailDto.getDocumentName(), storeDetailDto.getSiteName(), nameList, deliveryName));
/*return AjaxResult.me().setSuccess(true).setResultObj(
deliveryService.getStoreDetail(storeDetailDto.getDocumentName(), storeDetailDto.getSiteName(), nameList, deliveryName));*/
} else {
// 辅材
return AjaxResult.me().setSuccess(true).setResultObj(

View File

@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.sql.Timestamp;
@ -662,8 +663,8 @@ public class MaterialReceiveActController {
}
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.me().setErrorCode(400).setMessage(e.toString());
return AjaxResult.me().setErrorCode(400).setMessage(e.toString()).setSuccess(false);
}
return AjaxResult.me().setSuccess(true);
return AjaxResult.me().setSuccess(true).setErrorCode(200);
}
}

View File

@ -136,4 +136,13 @@ public interface DeliveryDao {
* @return 结果
*/
int editDelivery(@Param("dto") DeliveryEditDto deliveryEditDto);
/**
* 根据到货单获取入库详情
*/
@MapKey("storeDetail")
List<Map<String, Object>> getDeliveryStoreDetail(@Param("siteName") String siteName,
@Param("nameList") List<String> nameList,
@Param("typeList") List<String> typeList,
@Param("deliveryName") String deliveryName);
}

View File

@ -117,4 +117,14 @@ public interface IDeliveryService {
*/
int editDelivery(DeliveryEditDto deliveryEditDto);
/**
* 获取采购单明细及批次
* @param documentName 单据名称
* @param siteName 组织
* @param nameList 名称
* @param deliveryName 到库单号
* @return 采购订单
*/
ReceiveDetailVo getDeliveryStoreDetail(String documentName, String siteName, List<String> nameList, String deliveryName);
}

View File

@ -142,4 +142,17 @@ public class DeliveryServiceImpl implements IDeliveryService {
public int editDelivery(DeliveryEditDto deliveryEditDto) {
return deliveryDao.editDelivery(deliveryEditDto);
}
@Override
public ReceiveDetailVo getDeliveryStoreDetail(String documentName, String siteName, List<String> nameList, String deliveryName) {
ReceiveDetailVo receiveDetailVo = new ReceiveDetailVo();
// 采购单明细
//List<Map<String, Object>> storeDetail = deliveryDao.getStoreDetail(siteName, nameList, ReceiveTypeEnums.getPurchase(), deliveryName);
List<Map<String, Object>> storeDetail = deliveryDao.getDeliveryStoreDetail(siteName, nameList, ReceiveTypeEnums.getPurchase(), deliveryName);
receiveDetailVo.setStoreDetail(storeDetail);
// 批次
List<Map<String, Object>> storeCharge = deliveryDao.getStoreCharge(siteName, documentName);
receiveDetailVo.setStoreCharge(storeCharge);
return receiveDetailVo;
}
}

View File

@ -360,4 +360,125 @@
UPDATE MATERIALDELIVERY SET DELIVERYSTATE = #{dto.deliveryState}
WHERE SITENAME = #{dto.siteName} AND DELIVERYNAME = #{dto.deliveryName}
</delete>
<select id="getDeliveryStoreDetail" resultType="map">
WITH
AA AS (
SELECT
m5.RECEIVEREQUESTNAME,
m5.MATERIALSPECNAME,
SUM( m5.MATERIALQUANTITY ) QTY
FROM
MATERIALPACKING m5
WHERE
m5.STOCKSTATE IN ( 'Stocked', 'StockOut' )
AND m5.RECEIVEREQUESTNAME IN ( #{deliveryName} )
GROUP BY
m5.MATERIALSPECNAME,
m5.RECEIVEREQUESTNAME
),
BB AS (
SELECT
m5.RECEIVEREQUESTNAME,
m5.MATERIALSPECNAME,
SUM( m5.MATERIALQUANTITY ) QTY
FROM
MATERIALPACKING m5
WHERE
m5.STOCKSTATE = 'Created'
AND m5.RECEIVEREQUESTNAME IN ( #{deliveryName} )
GROUP BY
m5.MATERIALSPECNAME,
m5.RECEIVEREQUESTNAME
),
CC AS (
SELECT
m5.DELIVERYNAME RECEIVEREQUESTNAME,
m5.MATERIALSPECNAME ,
SUM( m5.DELIVERYNUM ) QTY
FROM
MATERIALDELIVERYRECEIVE m5
WHERE
m5.DELIVERYNAME IN ( #{deliveryName} )
GROUP BY
m5.DELIVERYNAME,
m5.MATERIALSPECNAME
),
DELIVERY AS (
SELECT DISTINCT DELIVERYNAME, md.MATERIALSPECNAME,
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME,
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE,
'1' RECEIVEREQUESTDETAILNAME,
m.SITENAME,
m.ERPLOCATION,
m.LOCATIONNAME,
m.MATERIALUNIT,
m.SDK_ID,
m.REMARK REMARK,
m.SALESMAN SALESPERSON,
m.SALESASSISTANT CAREER_ASSISTANCE,
m.BUSINESSDIVISION BUSINESS_UNIT,
COALESCE( m2.STOCKORGNO, m.ERPFACTORY ) AS ERPFACTORY,
m2.SUPPLIERNO,
--m.POCATEGORY,
m3.WIDTH AS DESCRIPTION,
m3.MATERIALUNITDESC,
m3.WIDTH SPECNAME,
m3.PHASE,
m3.DESC_CN,
DECODE( m3.IS_BATCH, 'Y', '是', '否' ) IS_BATCH,
CASE WHEN m3.EXPIRATION_RULES = '0' THEN
'入厂保质期'
WHEN m3.EXPIRATION_RULES = '1' THEN
'出厂保质期' ELSE '未定义'
END AS REPLACED_VALUE,
DECODE( m4.IQCFLAG, 'Y', '是', '否' ) IQCFLAG,
be.DESCRIPTION AS ERPLOCATION2,
o.ORGNAME AS ERPFACTORY2,
sss.DESCRIPTION AS LOCATIONNAME2 FROM MATERIALDELIVERYRECEIVE md
LEFT JOIN MATERIALRECEIVEREQUEST m2 ON md.RECEIVEREQUESTNAME = m2.RECEIVEREQUESTNAME
LEFT JOIN MATERIALRECEIVEREQUESTDETAIL m ON md.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME
AND md.RECEIVEREQUESTDETAILNAME = m.RECEIVEREQUESTDETAILNAME
LEFT JOIN MATERIALSPEC m3 ON md.MATERIALSPECNAME = m3.MATERIALSPECNAME
LEFT JOIN BS_MATERIALFACTORY m4 ON m3.MATERIALSPECNAME = m4.MATERIALSPECNAME AND m2.ERPFACTORY = m4.ERPFACTORY
LEFT JOIN BS_ERPLOCATION be ON m.ERPLOCATION = be.ERPLOCATIONNAME
LEFT JOIN ORG o ON m2.STOCKORGNO = o.ORGNO
LEFT JOIN STORAGESPEC sss ON m.LOCATIONNAME = sss.STORAGENAME
WHERE md.DELIVERYNAME = #{deliveryName})
SELECT M.DELIVERYNAME, M.MATERIALSPECNAME,
M.RECEIVETIME,
M.MAKEDATE,
M.RECEIVEREQUESTDETAILNAME,
M.SITENAME,
M.ERPLOCATION,
M.LOCATIONNAME,
M.MATERIALUNIT,
M.SDK_ID,
M.REMARK,
M.SALESPERSON,
M.CAREER_ASSISTANCE,
M.BUSINESS_UNIT,
M.ERPFACTORY,
M.SUPPLIERNO,
M.DESCRIPTION,
M.MATERIALUNITDESC,
M.SPECNAME,
M.PHASE,
M.DESC_CN,
M.IS_BATCH,
M.REPLACED_VALUE,
M.IQCFLAG,
M.ERPLOCATION2,
M.ERPFACTORY2,
M.LOCATIONNAME2,AA.QTY RECEIVEDQUANTITY2,BB.QTY RECEIVEDQUANTITY, CC.QTY REQUESTQUANTITY, (CC.QTY - BB.QTY) MINUSQTY, AA.QTY STOCKINQTY, BB.QTY CREATEQTY FROM DELIVERY M
LEFT JOIN AA ON M.DELIVERYNAME = AA.RECEIVEREQUESTNAME AND M.MATERIALSPECNAME = AA.MATERIALSPECNAME
LEFT JOIN BB ON M.DELIVERYNAME = BB.RECEIVEREQUESTNAME AND M.MATERIALSPECNAME = BB.MATERIALSPECNAME
LEFT JOIN CC ON M.DELIVERYNAME = CC.RECEIVEREQUESTNAME AND M.MATERIALSPECNAME = CC.MATERIALSPECNAME
WHERE M.DELIVERYNAME = #{deliveryName}
</select>
</mapper>