@ -15,9 +15,11 @@ import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceUtil
import com.cim.idm.mwmsextend.materialshiprequest.service.MaterialShipRequestServiceImpl ;
import com.cim.idm.service.ChargeSplitService ;
import com.cim.idm.service.InvoiceService ;
import com.cim.idm.service.QMSService ;
import com.cim.idm.service.impl.MESServiceImpl ;
import com.cim.idm.service.impl.ToSAPServiceImpl ;
import com.cim.idm.util.MessageLogUtil ;
import com.cim.idm.util.NCHttpUtil ;
import com.cim.idm.util.ToSAPMessageUtil ;
import com.cim.idm.utils.AjaxResult ;
import com.cim.idm.utils.CodeGenerator ;
@ -39,7 +41,9 @@ import com.cim.idm.wmspackage.materialreceivetactdetail.management.data.Material
import com.fasterxml.jackson.core.JsonProcessingException ;
import com.fasterxml.jackson.databind.JsonMappingException ;
import groovy.lang.Lazy ;
import io.micrometer.core.instrument.util.StringUtils ;
import org.apache.commons.collections4.MapUtils ;
import org.quartz.SimpleTrigger ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
@ -58,7 +62,8 @@ public class InvoiceServiceImpl implements InvoiceService {
@Autowired
private ToSAPServiceImpl toSAPService ;
@Autowired
private QMSService qmsService ;
@Autowired
@Lazy
private ChargeSplitService chargeSplitService ;
@ -3433,6 +3438,11 @@ public class InvoiceServiceImpl implements InvoiceService {
/ / billCode = toSAPService . saleStockOut_NEW ( shipRequestName , " SDK " , eventUser , materialPackingKeyList ) ;
billCode = saleStockOut_NEW ( shipRequestName , " SDK " , eventUser , materialPackingKeyList , commitDate ) ;
untils . SaveUnDoInfo_ForSap ( materialPackingKeyList , billCode , makeEventInfo ) ;
/ / 单据类型等于ZLF0 - ZLF9 , 物料编码以7开头都属于成品胶水需要调用QMS质检接口
String message = checkShipRequestTypeSendIQC ( commitDate , siteName , shipRequestName , makeEventInfo , materialPackingKeyList ) ;
if ( StringUtils . isNotEmpty ( message ) ) {
throw new CustomException ( message ) ;
}
break ;
case " 08 " : / / 委外
case " OEM " : / / 委外
@ -3568,4 +3578,99 @@ public class InvoiceServiceImpl implements InvoiceService {
String sendData = MainData . toJSONString ( ) ;
return sendData ;
}
public String checkShipRequestTypeSendIQC ( String shippingDate , String siteName , String shipRequestName , EventInfo eventInfo , List < String > materialPackingNameList ) throws Exception {
String message = " " ;
JSONArray jsonArray = new JSONArray ( ) ;
Map < String , JSONObject > jsonObjectMap = new HashMap < > ( ) ;
String sql = " SELECT \ n " +
" MP.SITENAME, \ n " +
" MP.SHIPREQUESTNAME, \ n " +
" MP.MATERIALSPECNAME, \ n " +
" MP.MATERIALPACKINGNAME, \ n " +
" MP.REMARK, \ n " +
" MP.CHARGE, \ n " +
" MP.SDKTRUEID, \ n " +
" MS.DESC_CN \ n " +
" FROM \ n " +
" MATERIALPACKING MP \ n " +
" LEFT JOIN MATERIALSPEC MS ON MP.SITENAME = MS.SITENAME AND MP.MATERIALSPECNAME = MS.MATERIALSPECNAME \ n " +
" WHERE \ n " +
" MP.SITENAME =:SITENAME \ n " +
" AND MP.SHIPREQUESTNAME =:SHIPREQUESTNAME \ n " +
" AND MP.MATERIALPACKINGNAME IN (:BOXLIST) \ n " +
" AND MP.MATERIALSPECNAME LIKE '7%' " ;
Map < String , Object > hashMap = new HashMap < String , Object > ( ) ;
hashMap . put ( " SHIPREQUESTNAME " , shipRequestName ) ;
hashMap . put ( " SITENAME " , siteName ) ;
hashMap . put ( " BOXLIST " , materialPackingNameList ) ;
List < Map < String , Object > > queryForList = IDMFrameServiceProxy . getSqlTemplate ( ) . queryForList ( sql . toString ( ) , hashMap ) ;
if ( ! queryForList . isEmpty ( ) ) {
for ( int i = 0 ; i < queryForList . size ( ) ; i + + ) {
String source = " wms " ;
String deliveryNumber = queryForList . get ( i ) . get ( " SHIPREQUESTNAME " ) = = null ? " " : queryForList . get ( i ) . get ( " SHIPREQUESTNAME " ) . toString ( ) ;
String materialCode = queryForList . get ( i ) . get ( " MATERIALSPECNAME " ) = = null ? " " : queryForList . get ( i ) . get ( " MATERIALSPECNAME " ) . toString ( ) ;
String materialName = queryForList . get ( i ) . get ( " DESC_CN " ) = = null ? " " : queryForList . get ( i ) . get ( " DESC_CN " ) . toString ( ) ;
String specification = queryForList . get ( i ) . get ( " SDKTRUEID " ) = = null ? " " : queryForList . get ( i ) . get ( " SDKTRUEID " ) . toString ( ) ;
String materialPackingName = queryForList . get ( i ) . get ( " MATERIALPACKINGNAME " ) = = null ? " " : queryForList . get ( i ) . get ( " MATERIALPACKINGNAME " ) . toString ( ) ;
if ( jsonObjectMap . containsKey ( materialName ) ) {
JSONObject jsonObject = jsonObjectMap . get ( materialName ) ;
String shipmentBatch = jsonObject . getString ( " shipmentBatch " ) ;
jsonObject . put ( " shipmentBatch " , shipmentBatch + " , " + materialPackingName ) ;
} else {
JSONObject jsonObject = new JSONObject ( true ) ;
/ / 必传字段
jsonObject . put ( " source " , source ) ;
/ / 出货日期 , 取页面上的过账日期
jsonObject . put ( " shippingDate " , shippingDate ) ;
/ / 发货单号
jsonObject . put ( " deliveryNumber " , deliveryNumber ) ;
/ / 料号
jsonObject . put ( " materialCode " , materialCode ) ;
/ / 发货品名
jsonObject . put ( " materialName " , materialName ) ;
/ / 规格
jsonObject . put ( " specification " , specification ) ;
/ / 发货批次号
jsonObject . put ( " shipmentBatch " , materialPackingName ) ;
jsonObjectMap . put ( materialName , jsonObject ) ;
/ / 非必传字段
/ * *
* String inspectionNumber = queryForList . get ( i ) . get ( " SHIPREQUESTNAME " ) = = null ? " " : queryForList . get ( i ) . get ( " SHIPREQUESTNAME " ) . toString ( ) ;
* String quantity = queryForList . get ( i ) . get ( " MATERIALQUANTITY " ) = = null ? " " : queryForList . get ( i ) . get ( " MATERIALQUANTITY " ) . toString ( ) ;
* String inspectBatch = queryForList . get ( i ) . get ( " CHARGE " ) = = null ? " " : queryForList . get ( i ) . get ( " CHARGE " ) . toString ( ) ;
* String samplingQuantity = queryForList . get ( i ) . get ( " " ) = = null ? " " : queryForList . get ( i ) . get ( " " ) . toString ( ) ;
* String samplingSpecification = queryForList . get ( i ) . get ( " " ) = = null ? " " : queryForList . get ( i ) . get ( " " ) . toString ( ) ;
* String remark = queryForList . get ( i ) . get ( " REMARK " ) = = null ? " " : queryForList . get ( i ) . get ( " REMARK " ) . toString ( ) ;
* String materialGroup = queryForList . get ( i ) . get ( " MATERIALPROCESSGROUPNAME " ) = = null ? " " : queryForList . get ( i ) . get ( " MATERIALPROCESSGROUPNAME " ) . toString ( ) ;
/ / 发货数量
jsonObject . put ( " quantity " , quantity ) ;
/ / 客户名称
jsonObject . put ( " customName " , customName ) ;
/ / 客户代码
jsonObject . put ( " customCode " , customCode ) ;
/ / 检验单号
jsonObject . put ( " inspectionNumber " , inspectionNumber ) ;
/ / 检验批号
jsonObject . put ( " inspectBatch " , inspectBatch ) ;
/ / 抽检数量
jsonObject . put ( " samplingQuantity " , samplingQuantity ) ;
/ / 抽检规格
jsonObject . put ( " samplingSpecification " , samplingSpecification ) ;
/ / 备注
jsonObject . put ( " remark " , remark ) ;
/ / 物料组
jsonObject . put ( " materialGroup " , materialGroup ) ;
* /
}
}
jsonArray . addAll ( jsonObjectMap . values ( ) ) ;
String jsonArrayJSONString = jsonArray . toJSONString ( ) ;
message = qmsService . sendQMSByUrlJson ( jsonArrayJSONString , " /opc/addShipmentInspection " , eventInfo ) ;
}
return message ;
}
}