feat 批次入库:到货单的入库详细信息
This commit is contained in:
parent
f16885f5c6
commit
68bf730af3
@ -59,7 +59,8 @@ public class DeliveryController {
|
||||
List<String> nameList = new ArrayList<>();
|
||||
// 判定是否是到库单
|
||||
String typeByKey = deliveryService.getByKey(siteName, receiveRequestName).getReceiveRequestType();
|
||||
if (typeByKey.equals(ReceiveTypeEnums.DK.getCode())) {
|
||||
boolean isDelivery = typeByKey.equals(ReceiveTypeEnums.DK.getCode());
|
||||
if (isDelivery) {
|
||||
// 到库单(找出该单据下的所有的采购单)
|
||||
nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName)
|
||||
.stream().map(MaterialReceiveRequest::getReceiveRequestName).collect(Collectors.toList());
|
||||
@ -68,7 +69,7 @@ public class DeliveryController {
|
||||
nameList.add(receiveRequestName);
|
||||
}
|
||||
// 获取采购单明细及批次
|
||||
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getStoreDetail(siteName, nameList));
|
||||
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getStoreDetail(siteName, nameList, isDelivery));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,9 +1,10 @@
|
||||
package com.cim.idm.dao;
|
||||
|
||||
import com.cim.idm.model.dto.DeliveryRelationDto;
|
||||
import com.cim.idm.model.po.MaterialReceiveDelivery;
|
||||
import com.cim.idm.model.po.MaterialReceiveRequest;
|
||||
import com.cim.idm.model.po.MaterialReceiveRequestDetail;
|
||||
import com.cim.idm.model.dto.PurchaseDto;
|
||||
import com.cim.idm.model.vo.DeliveryReceiveDetailVo;
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -28,13 +29,6 @@ public interface DeliveryDao {
|
||||
*/
|
||||
int createRelation(@Param("receiveList") List<DeliveryRelationDto> receiveList);
|
||||
|
||||
/**
|
||||
* 绑定采购订单 的 到货单
|
||||
*/
|
||||
int bindDelivery(@Param("siteName") String siteName,
|
||||
@Param("receiveRequestName") String receiveRequestName,
|
||||
@Param("nameList") List<String> nameList);
|
||||
|
||||
/**
|
||||
* 获取采购订单
|
||||
*/
|
||||
@ -46,7 +40,8 @@ public interface DeliveryDao {
|
||||
*/
|
||||
@MapKey("storeDetail")
|
||||
List<Map<String, Object>> getStoreDetail(@Param("siteName") String siteName,
|
||||
@Param("nameList") List<String> nameList);
|
||||
@Param("nameList") List<String> nameList,
|
||||
@Param("isDelivery") Boolean isDelivery);
|
||||
|
||||
/**
|
||||
* 获取入库批次
|
||||
@ -67,10 +62,15 @@ public interface DeliveryDao {
|
||||
List<MaterialReceiveRequest> getReceiveByDelivery(@Param("siteName") String siteName,
|
||||
@Param("receiveRequestName") String receiveRequestName);
|
||||
|
||||
/**
|
||||
* 获取到库单关系
|
||||
*/
|
||||
List<MaterialReceiveDelivery> getRelation(@Param("deliveryName") String deliveryName);
|
||||
|
||||
/**
|
||||
* 根据到库单获取采购单名称
|
||||
* @param nameList 到库单
|
||||
* @return 采购单名称列表
|
||||
*/
|
||||
List<MaterialReceiveRequestDetail> getReceiveDetail(@Param("nameList") List<String> nameList);
|
||||
List<DeliveryReceiveDetailVo> getReceiveDetail(@Param("nameList") List<String> nameList);
|
||||
}
|
||||
|
@ -10,4 +10,6 @@ public class DeliveryRelationDto {
|
||||
private Integer deliveryNum = 0;
|
||||
// 采购单名称
|
||||
private String receiveRequestName;
|
||||
// 料号
|
||||
private String materialSpecName;
|
||||
}
|
||||
|
@ -1,13 +1,14 @@
|
||||
package com.cim.idm.service;
|
||||
|
||||
import com.cim.idm.model.dto.DeliveryDto;
|
||||
import com.cim.idm.model.po.MaterialReceiveDelivery;
|
||||
import com.cim.idm.model.po.MaterialReceiveRequest;
|
||||
import com.cim.idm.model.dto.PageDto;
|
||||
import com.cim.idm.model.po.MaterialReceiveRequestDetail;
|
||||
import com.cim.idm.model.vo.DeliveryReceiveDetailVo;
|
||||
import com.cim.idm.model.vo.ReceiveDetailVo;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IDeliveryService {
|
||||
/**
|
||||
@ -28,9 +29,10 @@ public interface IDeliveryService {
|
||||
* 获取采购单明细及批次
|
||||
* @param siteName 组织
|
||||
* @param nameList 名称
|
||||
* @param isDelivery 是否到库
|
||||
* @return 采购订单
|
||||
*/
|
||||
Map<String, Object> getStoreDetail(String siteName, List<String> nameList);
|
||||
ReceiveDetailVo getStoreDetail(String siteName, List<String> nameList, Boolean isDelivery);
|
||||
|
||||
/**
|
||||
* 根据 key 获取值
|
||||
@ -47,10 +49,15 @@ public interface IDeliveryService {
|
||||
*/
|
||||
List<MaterialReceiveRequest> getReceiveByDelivery(String siteName, String receiveRequestName);
|
||||
|
||||
/**
|
||||
* 获取到库单关系
|
||||
*/
|
||||
List<MaterialReceiveDelivery> getRelation(String deliveryName);
|
||||
|
||||
/**
|
||||
* 根据到库单获取采购单名称
|
||||
* @param nameList 到库单
|
||||
* @return 采购单名称列表
|
||||
*/
|
||||
List<MaterialReceiveRequestDetail> getReceiveDetail(List<String> nameList);
|
||||
List<DeliveryReceiveDetailVo> getReceiveDetail(List<String> nameList);
|
||||
}
|
||||
|
@ -7,20 +7,18 @@ import com.cim.idm.model.dto.PageDto;
|
||||
import com.cim.idm.model.dto.PurchaseDto;
|
||||
import com.cim.idm.model.dto.DeliveryDto;
|
||||
import com.cim.idm.model.dto.DeliveryRelationDto;
|
||||
import com.cim.idm.model.po.MaterialReceiveDelivery;
|
||||
import com.cim.idm.model.po.MaterialReceiveRequest;
|
||||
import com.cim.idm.model.po.MaterialReceiveRequestDetail;
|
||||
import com.cim.idm.model.vo.DeliveryReceiveDetailVo;
|
||||
import com.cim.idm.model.vo.ReceiveDetailVo;
|
||||
import com.cim.idm.service.IDeliveryService;
|
||||
import com.cim.idm.wmspackage.invoice.management.data.MaterialReceiveRequestKey;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class DeliveryServiceImpl implements IDeliveryService {
|
||||
@ -37,16 +35,18 @@ public class DeliveryServiceImpl implements IDeliveryService {
|
||||
return "添加到库单失败";
|
||||
}
|
||||
// 添加到库单关系
|
||||
List<DeliveryRelationDto> res = new ArrayList<>();
|
||||
for (DeliveryRelationDto item : dto.getReceiveList()) {
|
||||
item.setDeliveryName(dto.getReceiveRequestName());
|
||||
// 数量大于 0
|
||||
if (Objects.nonNull(item.getDeliveryNum()) && item.getDeliveryNum() > 0) {
|
||||
// 到库单号
|
||||
item.setDeliveryName(dto.getReceiveRequestName());
|
||||
res.add(item);
|
||||
}
|
||||
}
|
||||
if (deliveryDao.createRelation(dto.getReceiveList()) <= 0) {
|
||||
if (deliveryDao.createRelation(res) <= 0) {
|
||||
return "添加到库单关系失败";
|
||||
}
|
||||
// 更新采购单到库单字段
|
||||
List<String> collect = dto.getDataList().stream()
|
||||
.map(MaterialReceiveRequestKey::getReceiveRequestName).collect(Collectors.toList());
|
||||
deliveryDao.bindDelivery(dto.getSiteName(), dto.getReceiveRequestName(), collect);
|
||||
return "更新成功";
|
||||
}
|
||||
|
||||
@ -58,15 +58,15 @@ public class DeliveryServiceImpl implements IDeliveryService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getStoreDetail(String siteName, List<String> nameList) {
|
||||
Map<String, Object> res = new HashMap<>();
|
||||
public ReceiveDetailVo getStoreDetail(String siteName, List<String> nameList, Boolean isDelivery) {
|
||||
ReceiveDetailVo receiveDetailVo = new ReceiveDetailVo();
|
||||
// 采购单明细
|
||||
List<Map<String, Object>> storeDetail = deliveryDao.getStoreDetail(siteName, nameList);
|
||||
List<Map<String, Object>> storeDetail = deliveryDao.getStoreDetail(siteName, nameList, isDelivery);
|
||||
receiveDetailVo.setStoreDetail(storeDetail);
|
||||
// 批次
|
||||
List<Map<String, Object>> storeCharge = deliveryDao.getStoreCharge(siteName, nameList);
|
||||
res.put("storeDetail", storeDetail);
|
||||
res.put("storeCharge", storeCharge);
|
||||
return res;
|
||||
receiveDetailVo.setStoreCharge(storeCharge);
|
||||
return receiveDetailVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -80,7 +80,12 @@ public class DeliveryServiceImpl implements IDeliveryService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialReceiveRequestDetail> getReceiveDetail(List<String> nameList) {
|
||||
public List<MaterialReceiveDelivery> getRelation(String deliveryName) {
|
||||
return deliveryDao.getRelation(deliveryName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeliveryReceiveDetailVo> getReceiveDetail(List<String> nameList) {
|
||||
return deliveryDao.getReceiveDetail(nameList);
|
||||
}
|
||||
}
|
||||
|
@ -10,20 +10,11 @@
|
||||
<insert id="createRelation">
|
||||
INSERT ALL
|
||||
<foreach item="item" index="index" collection="receiveList">
|
||||
INTO MATERIALRECEIVEDELIVERY (RECEIVEREQUESTNAME, DELIVERYNAME, DELIVERYNUM) VALUES (#{item.receiveRequestName}, #{item.deliveryName}, #{item.deliveryNum})
|
||||
INTO MATERIALRECEIVEDELIVERY (RECEIVEREQUESTNAME, DELIVERYNAME, DELIVERYNUM, MATERIALSPECNAME) VALUES (#{item.receiveRequestName}, #{item.deliveryName}, #{item.deliveryNum}, #{item.materialSpecName})
|
||||
</foreach>
|
||||
SELECT * FROM dual
|
||||
</insert>
|
||||
|
||||
<update id="bindDelivery">
|
||||
UPDATE MATERIALRECEIVEREQUEST SET DELIVERYNAME = #{receiveRequestName}
|
||||
WHERE SITENAME = #{siteName}
|
||||
AND RECEIVEREQUESTNAME IN
|
||||
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="getPurchase" resultType="com.cim.idm.model.po.MaterialReceiveRequest">
|
||||
SELECT SITENAME, RECEIVEREQUESTNAME FROM MATERIALRECEIVEREQUEST
|
||||
WHERE SITENAME = #{dto.siteName}
|
||||
@ -65,13 +56,31 @@
|
||||
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY ) AS RECEIVEDQUANTITY2,
|
||||
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY ) AS MINUSQTY
|
||||
FROM MATERIALRECEIVEREQUESTDETAIL m
|
||||
WHERE RECEIVEREQUESTNAME in
|
||||
WHERE m.RECEIVEREQUESTNAME in
|
||||
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
GROUP BY m.MATERIALSPECNAME
|
||||
)
|
||||
SELECT distinct MAIN.*, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH,
|
||||
<if test="isDelivery">
|
||||
,DELIVERY AS (
|
||||
SELECT sum(md.DELIVERYNUM) DELIVERYNUM, md.MATERIALSPECNAME MATERIALSPECNAME
|
||||
FROM MATERIALRECEIVEDELIVERY md
|
||||
WHERE md.RECEIVEREQUESTNAME IN
|
||||
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
GROUP BY md.MATERIALSPECNAME
|
||||
)
|
||||
</if>
|
||||
SELECT distinct MAIN.RECEIVEDQUANTITY, MAIN.MINUSQTY,
|
||||
<if test="isDelivery">
|
||||
DELIVERY.DELIVERYNUM REQUESTQUANTITY,
|
||||
</if>
|
||||
<if test="!isDelivery">
|
||||
MAIN.REQUESTQUANTITY REQUESTQUANTITY,
|
||||
</if>
|
||||
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH,
|
||||
m.MATERIALSPECNAME, 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,
|
||||
m2.STOCKORGNO AS ERPFACTORY, m2.SUPPLIERNO,
|
||||
@ -96,6 +105,9 @@
|
||||
AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME
|
||||
AND BB.SDK_ID = m.SDK_ID
|
||||
AND BB.PHASE = m3.PHASE
|
||||
<if test="isDelivery">
|
||||
INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME
|
||||
</if>
|
||||
WHERE ( m2.RETURNFLAG IS NULL OR m2.RETURNFLAG != 'Y' )
|
||||
AND m.RECEIVEREQUESTNAME in
|
||||
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
|
||||
@ -135,34 +147,32 @@
|
||||
OEMSITENAME, OEMSITEINCHARGE, SYSTEMTYPE, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,
|
||||
LASTEVENTCOMMENT, ERPPONAME, SAVEREASON, RESPPERSON, RESPDEPART, SOLVETIME, PASSSTATE, WORKER, SDK_ID,
|
||||
ERPID, REMARK, PURCHASER, PURORGNO, ORDERDATE, CLOSERUSER, CLOSEDATE, STOCKORGNO, RETURNFLAG,
|
||||
RECEIVEREQUESTDETAILTYPE, ERPLOCATION, PRODUCTDEPTNO, SOURCEBILLID, EFFECTIVESTARTTIME, EFFECTIVEENDTIME,
|
||||
DELIVERYNAME
|
||||
RECEIVEREQUESTDETAILTYPE, ERPLOCATION, PRODUCTDEPTNO, SOURCEBILLID, EFFECTIVESTARTTIME, EFFECTIVEENDTIME
|
||||
FROM MATERIALRECEIVEREQUEST
|
||||
WHERE SITENAME = #{siteName}
|
||||
AND RECEIVEREQUESTNAME = #{receiveRequestName}
|
||||
</select>
|
||||
|
||||
<select id="getReceiveByDelivery" resultType="com.cim.idm.model.po.MaterialReceiveRequest">
|
||||
SELECT SITENAME, RECEIVEREQUESTNAME, RECEIVEREQUESTTYPE, PURCHASEORDERGROUP, RECEIVEREQUESTSTATE, SUPPLIERNO,
|
||||
OEMSITENAME, OEMSITEINCHARGE, SYSTEMTYPE, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,
|
||||
LASTEVENTCOMMENT, ERPPONAME, SAVEREASON, RESPPERSON, RESPDEPART, SOLVETIME, PASSSTATE, WORKER, SDK_ID,
|
||||
ERPID, REMARK, PURCHASER, PURORGNO, ORDERDATE, CLOSERUSER, CLOSEDATE, STOCKORGNO, RETURNFLAG,
|
||||
RECEIVEREQUESTDETAILTYPE, ERPLOCATION, PRODUCTDEPTNO, SOURCEBILLID, EFFECTIVESTARTTIME, EFFECTIVEENDTIME,
|
||||
DELIVERYNAME
|
||||
FROM MATERIALRECEIVEREQUEST
|
||||
WHERE SITENAME = #{siteName}
|
||||
AND DELIVERYNAME = #{receiveRequestName}
|
||||
SELECT m.SITENAME, m.RECEIVEREQUESTNAME, m.RECEIVEREQUESTTYPE, m.PURCHASEORDERGROUP, m.RECEIVEREQUESTSTATE, m.SUPPLIERNO,
|
||||
m.OEMSITENAME, m.OEMSITEINCHARGE, m.SYSTEMTYPE, m.LASTEVENTNAME, m.LASTEVENTTIMEKEY, m.LASTEVENTTIME, m.LASTEVENTUSER,
|
||||
m.LASTEVENTCOMMENT, m.ERPPONAME, m.SAVEREASON, m.RESPPERSON, m.RESPDEPART, m.SOLVETIME, m.PASSSTATE, m.WORKER, m.SDK_ID,
|
||||
m.ERPID, m.REMARK, m.PURCHASER, m.PURORGNO, m.ORDERDATE, m.CLOSERUSER, m.CLOSEDATE, m.STOCKORGNO, m.RETURNFLAG,
|
||||
m.RECEIVEREQUESTDETAILTYPE, m.ERPLOCATION, m.PRODUCTDEPTNO, m.SOURCEBILLID, m.EFFECTIVESTARTTIME, m.EFFECTIVEENDTIME
|
||||
FROM MATERIALRECEIVEREQUEST m, MATERIALRECEIVEDELIVERY md
|
||||
WHERE md.DELIVERYNAME = #{receiveRequestName}
|
||||
AND m.SITENAME = #{siteName}
|
||||
AND m.RECEIVEREQUESTNAME = md.RECEIVEREQUESTNAME
|
||||
</select>
|
||||
|
||||
<select id="getReceiveDetail" resultType="com.cim.idm.model.po.MaterialReceiveRequestDetail">
|
||||
SELECT SITENAME, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME, POCATEGORY, RECEIVEREQUESTDETAILTYPE,
|
||||
MATERIALSPECNAME, DESCRIPTION, REQUESTQUANTITY, RECEIVEDQUANTITY, ERPLOCATION, RETURNFLAG, FREEFLAG,
|
||||
RECEIVEREQUESTDETAILSTATE, HOLDSTATE, IQCFLAG, PLANDATE, CREATEUSER, CREATETIME, CHARGE, ERPFACTORY,
|
||||
LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER, LASTEVENTCOMMENT, SDK_ID, MATERIALUNIT,
|
||||
STATE, PHASE, ERPDETAILID, SOURCELINEID, APPLICANT, INNERORDER, ERPPONAME, INNERFLAG, SUPPLIERCHARGE,
|
||||
FORCECOMPLETEDFLAG, ERPPODETAILNAME, TRANFERTYPE, PRTBARCODEQTY, LOCATIONNAME, DELETEDETAILFLAG,
|
||||
PRODUCTORDER, PLANORDER, REMARK, SALESMAN, SALESASSISTANT, BUSINESSDIVISION, FINISHFLAG, COSTCENTER,
|
||||
ORDERCHANGEDATE, WMSRETURNCHARGENO, PURCHASEREQUESTNOTE, PURCHASEREQUESTNO, PURCHASEREQUESTDETAILNO
|
||||
<select id="getRelation" resultType="com.cim.idm.model.po.MaterialReceiveDelivery">
|
||||
SELECT md.DELIVERYNAME, md.DELIVERYNUM, md.RECEIVEREQUESTNAME, md.MATERIALSPECNAME
|
||||
FROM MATERIALRECEIVEDELIVERY md
|
||||
WHERE md.DELIVERYNAME = #{deliveryName}
|
||||
</select>
|
||||
|
||||
<select id="getReceiveDetail" resultType="com.cim.idm.model.vo.DeliveryReceiveDetailVo">
|
||||
SELECT receiveRequestName, materialSpecName, requestQuantity, requestQuantity as deliveryNum
|
||||
FROM MATERIALRECEIVEREQUESTDETAIL
|
||||
WHERE RECEIVEREQUESTNAME in
|
||||
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
|
||||
|
Loading…
x
Reference in New Issue
Block a user