فهرست منبع

增加托书的发票推送

huxy 2 سال پیش
والد
کامیت
025184c201
20فایلهای تغییر یافته به همراه757 افزوده شده و 16 حذف شده
  1. 66 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/controller/SyPackingListFabricController.java
  2. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabric.java
  3. 9 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/SyPackingListFabricItemMapper.java
  4. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/SyPackingListFabricMapper.java
  5. 43 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricItemMapper.xml
  6. 18 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricMapper.xml
  7. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricItemService.java
  8. 6 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricService.java
  9. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricItemServiceImpl.java
  10. 204 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java
  11. 51 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java
  12. 40 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/PushJob.java
  13. 22 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/SyPackingListTailoring.java
  14. 4 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/SyPackingListTailoringItemMapper.java
  15. 7 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/SyPackingListTailoringMapper.java
  16. 20 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/xml/syPackingListTailoringItemMapper.xml
  17. 40 9
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/xml/syPackingListTailoringMapper.xml
  18. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/ISyPackingListTailoringService.java
  19. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringItemServiceImpl.java
  20. 203 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

+ 66 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/controller/SyPackingListFabricController.java

@@ -40,6 +40,7 @@ import org.jeecg.modules.documents.orderData.mapper.SyOrderDataMapper;
 import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
 import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsItemMapper;
+import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrder;
 import org.jeecg.modules.openApi.entity.DxpDataPlan;
 import org.jeecg.modules.openApi.service.IDxpDataPlanService;
 import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
@@ -530,6 +531,71 @@ public class SyPackingListFabricController implements Job {
 		return result;
 	}
 
+	 /**
+	  * 通过id查询
+	  *
+	  * @param id
+	  * @return
+	  */
+	 @AutoLog(value = "测试推送")
+	 @ApiOperation(value="测试推送", notes="测试推送")
+	 @GetMapping(value = "/testPushInvoice")
+	 public Result<List<SyPackingListFabric>> pushInvoice(@RequestParam(name="id",required=true) String id) {
+		 Result<List<SyPackingListFabric>> result=new Result<>();
+		 if(oConvertUtils.isEmpty(id)){
+			 result.setSuccess(false);
+			 result.setMessage("id为空");
+			 return result;
+		 }
+		 List<SyPackingListFabric> listFabrics=syPackingListFabricService.queryByList(id);
+		 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(listFabrics.get(0).getId());//获取一些日期信息
+		 for (SyPackingListFabric fabric : listFabrics){
+			 //System.out.println("madate\t"+mapdate);
+			 if(mapdate!=null){
+				 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null) {
+					 fabric.setTheFinalShippingDate(mapdate.get("e1").toString());
+				 }
+				 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
+					 fabric.setTheFinalShippingDate2(mapdate.get("e2").toString());
+				 }
+				 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
+					 fabric.setLatestDateOfShipment2(mapdate.get("e3").toString());
+				 }
+			 }
+			 List<SyPackingListFabricItem> listFabricItems=syPackingListFabricItemService.selectByMainId3(fabric.getId());//获取所有未删除的子表
+			 if(listFabricItems.size()>0){
+				 SyOrderData syOrderData=syOrderDataMapper.selectById(listFabricItems.get(0).getSyOrderDataId());//随机选中一条子表记录确定最终客户
+				 if(syOrderData!=null){
+					 fabric.setEndCustomer(syOrderData.getEndCustomer());
+				 }
+				 SyOrderDataItem dataItem=syOrderDataItemMapper.selectById(listFabricItems.get(0).getSyOrderDataItemId());//供应商全称
+				 if(dataItem!=null){
+					 fabric.setSupplierCode(dataItem.getSupplierCode());
+				 }
+			 }
+
+			 fabric.setSyPackingListFabricItem(listFabricItems);
+			/* List<SyPackingListFabricItem> fabricItemList=syPackingListFabricService.getList(fabric.getId());
+			 fabric.setSyPackingListFabricItem(fabricItemList);*/
+		 }
+
+		 //List<SyPackingListFabricItem> listFabricItems=syPackingListFabricItemService.queryByList(id);//获取托书下所有的主表信
+		 /*for (SyPackingListFabric syPackingListFabric : listFabrics){
+		 }*/
+		 //String message = syPackingListFabricService.pushInvoice(listFabricItems,listFabrics);
+		 if(listFabrics.size()==0){
+			 result.setSuccess(false);
+			 result.setMessage("未查询到装箱单的数据");
+			 result.setResult(listFabrics);
+			 return result;
+		 }
+		 String message = syPackingListFabricService.pushInvoice(listFabrics);
+		 result.setSuccess(true);
+		 result.setMessage(message);
+		 result.setResult(listFabrics);
+		 return result;
+	 }
+
 	/**
 	* 导出excel
 	*

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabric.java

@@ -211,6 +211,11 @@ public class SyPackingListFabric implements Serializable {
 	@ApiModelProperty(value = "u8推送单据号记录")
 	private String recordingCode;
 
+	/*rdrecord32Code*/
+	@ApiModelProperty(value = "暂存销售出库单编码")
+	@TableField(exist = false)
+	private String rdrecord32Code;
+
 	/**业务员*/
 	@Excel(name = "业务员 Merchandiser", width = 15)
 	@ApiModelProperty(value = "业务员")

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/SyPackingListFabricItemMapper.java

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.apache.ibatis.annotations.Param;
@@ -51,4 +52,12 @@ public interface SyPackingListFabricItemMapper extends BaseMapper<SyPackingListF
     List<SyPackingListFabricPage> getPages(@Param("ew")QueryWrapper<SyPackingListFabric> queryWrapper);
 
     List<String> getDocumentNos();
+
+    List<SyPackingListFabricItem> queryByList(String id);
+
+	List<Map<String, Object>> getInvoice(@Param("codes") String[]codes);
+
+	String getVencode(String name);
+
+	String getItaxRate(String id);
 }

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/SyPackingListFabricMapper.java

@@ -11,6 +11,7 @@ import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrder;
 import org.jeecg.modules.spapl.vo.SyPreAssembledPackingListVo;
 import org.jeecg.modules.splfi.entity.SyPackingListFabric;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
 
 /**
  * @Description: 面料装箱单
@@ -44,4 +45,8 @@ public interface SyPackingListFabricMapper extends BaseMapper<SyPackingListFabri
     Map<String,Object> getOM_MOMain(@Param("id")String id,@Param("cinvCode")String cinvCode);
 
     String getSO_SOMain(String id);
+
+    List<SyPackingListFabric> queryByList(String id);
+
+    List<Map<String, Object>> getCustomers(@Param("codes")String[] toArray);
 }

+ 43 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricItemMapper.xml

@@ -248,4 +248,47 @@ SELECT
 		) t
 	</select>
 
+	<select id="queryByList"  parameterType="java.lang.String" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabricItem">
+		select
+			(select hs_code from sy_declaration_elements
+			where id=t.elements_Id) hs_code,
+			(select declaration_Name from sy_declaration_elements
+			where id=t.elements_Id) declaration_Name,
+			(select declaration_unit from sy_declaration_elements
+			where id=t.elements_Id) declaration_unit, t.push_State, t.*
+			from ( 	SELECT
+			a.container_Number as containerNumber1, a.export_invoice_no,a.push_State,
+			a.garment_Factory, a.create_By as prepared_by,  b.*
+			FROM  sy_packing_list_fabric a
+			left join sy_packing_list_fabric_item b
+			on a.id=b.sy_packing_list_fabric_id and a.del_flag=0
+			where  b.del_flag=0 and
+			sy_packing_list_fabric_id  in
+			(select tailoring_fabric_id
+			from sy_shipping_order_item
+			where sy_shipping_order_item_id=#{value }
+			and del_flag=0)
+		) t
+	</select>
+
+	<select id="getInvoice"  parameterType="java.lang.String" resultType="java.util.HashMap">
+		select * from rdrecords32  where ID in
+		(select ID  from rdrecord32
+		where ccode in
+		<foreach collection="codes" item="value" index="index" open="(" separator="," close=")">
+			#{value}
+		</foreach>
+		)
+	</select>
+
+	<select id="getVencode"  parameterType="java.lang.String" resultType="java.lang.String">
+		select cVenDefine2  from Vendor
+        where cvenabbname=#{value }
+	</select>
+
+
+	<select id="getItaxRate" parameterType="java.lang.String" resultType="java.lang.String">
+        select  cast(iTaxRate as decimal(10,3)) iTaxRate   from SO_SODetails where iSOsID=
+        (select top 1 iSOsID from OM_MODetails where MODetailsID =#{value} )
+    </select>
 </mapper>

+ 18 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricMapper.xml

@@ -182,4 +182,22 @@
         select id from SO_SODetails where iSOsID=#{value})
     </select>
 
+    <select id="queryByList"  parameterType="java.lang.String" resultType="org.jeecg.modules.splfi.entity.SyPackingListFabric">
+		select * from sy_packing_list_fabric
+		where del_flag=0 and id in
+		(select tailoring_fabric_id
+		from sy_shipping_order_item
+		where sy_shipping_order_item_id=#{value }
+		and del_flag=0)
+	</select>
+
+
+    <select id="getCustomers"  parameterType="java.lang.String" resultType="java.util.HashMap">
+         select cCusCode,ccode  from rdrecord32
+        where ccode in
+        <foreach collection="codes" item="value" index="index" open="(" separator="," close=")">
+            #{value}
+        </foreach>
+    </select>
+
 </mapper>

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricItemService.java

@@ -16,4 +16,6 @@ public interface ISyPackingListFabricItemService extends IService<SyPackingListF
 	public List<SyPackingListFabricItem> selectByMainId(String mainId);
 
 	public List<SyPackingListFabricItem> selectByMainId3(String... toArray);
+
+	List<SyPackingListFabricItem> queryByList(String id);
 }

+ 6 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricService.java

@@ -86,4 +86,10 @@ public interface ISyPackingListFabricService extends IService<SyPackingListFabri
 	String three(SyPackingListFabric main, Map<String, Object> map);
 
 	List<SyPackingListFabricPage> getPages(QueryWrapper<SyPackingListFabric> queryWrapper);
+
+	//根据托书主表id,推送对应装箱单并返回推送信息
+	String pushInvoice(List<SyPackingListFabric> listFabrics);
+	//String pushInvoice(List<SyPackingListFabricItem> listFabricItems,List<SyPackingListFabric> listFabrics);
+
+	List<SyPackingListFabric> queryByList(String id);
 }

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricItemServiceImpl.java

@@ -29,4 +29,9 @@ public class SyPackingListFabricItemServiceImpl extends ServiceImpl<SyPackingLis
 	public List<SyPackingListFabricItem> selectByMainId3(String... toArray) {
 		return syPackingListFabricItemMapper.selectByMainId3(toArray);
 	}
+
+	@Override
+	public List<SyPackingListFabricItem> queryByList(String id) {
+		return syPackingListFabricItemMapper.queryByList(id);
+	}
 }

+ 204 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java

@@ -1130,6 +1130,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		return pages;
 	}
 
+
 	@Autowired
 	private SyShippingOrderMapper syShippingOrderMapper;//托书主表
 
@@ -1419,7 +1420,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					mapItem.put("IPROCESSCOST",orderDataItem.get("iNatUnitPrice"));//明细ID(采购订单行ID/委外订单行ID)
 					mapItem.put("IPRICE",1);//价格不赋值
 					//map5.put("CGLTYPE","委外订单");
-					if(item.getInventoryCcode()!=null&&item.getInventoryCcode().indexOf("040")>-1&&mapt.get("account").equals("103")&&!moDetailsIds.contains(item.getOmpoIdItem())){//103账套中物料分类为040的印花面料
+					if(item.getInventoryCcode()!=null&&item.getInventoryCcode().indexOf("040")>-1&&mapt.get("account").equals("103")
+							/*&&!moDetailsIds.contains(item.getOmpoIdItem())*/){//103账套中物料分类为040的印花面料
 						List<Map<String,Object>> orderDataItem3 =syPackingListFabricMapper.getOM_MOMaterials(item.getOmpoIdItem(),item.getInventoryCode());//委外订单子表
 						moDetailsIds.add(item.getOmpoIdItem());//同一个id只会进来一次
 						Map<String,Object> mapStr1=syPackingListFabricMapper.getOM_MOMain(item.getOmpoIdItem(),item.getInventoryCode());//供应商编码,存货编码
@@ -1493,8 +1495,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				mapItem5.put("CDEFINE23",unit);//报关单位
 				mapItem6.put("CDEFINE23",unit);//报关单位
 
-				mapItem.put("CDEFINE33",item.getDeclarationName());//报关品名
-				mapItem5.put("CDEFINE33",item.getDeclarationName());//报关品名
+				mapItem.put("CDEFINE33",item.getDeclarationName());//货物名称
+				mapItem5.put("CDEFINE33",item.getDeclarationName());//货物名称
 				mapItem4.put("CDEFINE31",item.getDeclarationName());//货物名称
 				mapItem4.put("CDEFINE33",item.getDeclarationName());//报关品名
 				mapItem6.put("CDEFINE31",item.getDeclarationName());//货物名称
@@ -2389,4 +2391,203 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 	public void execute(JobExecutionContext context) throws JobExecutionException {
 		this.getU8Data();//定时任务直接调用本地方法
 	}
+
+
+	/**
+	 * 合并批量推送销售发票单
+	 * @param
+	 * @return
+	 */
+	@Override
+	@DS("multi-three")
+	//public String pushInvoice(List<SyPackingListFabricItem> listFabricItems,List<SyPackingListFabric> listFabrics) {
+	public String pushInvoice(List<SyPackingListFabric> listFabrics) {
+		long startTime = System.currentTimeMillis();
+		String message="";
+		//List<SyPackingListFabricItem> listFabricItems=syPackingListFabricItemMapper.queryByList(id);
+		//List<SyPackingListFabric> listFabrics=syPackingListFabricMapper.queryByList(id);//获取托书下所有的主表信息
+		List<String> codes=getList(listFabrics);//获取出库单号
+		Map<String,List<String>> customers=getCustomers(codes);//key:供应商编码,value:出库单id
+		Map<String,List<SyPackingListFabricItem>> listFabricItemMaps=getListFabricItemMaps(customers,listFabrics);//key:供应商编码,value:出库单id
+		Map<String,List<SyPackingListFabric>> listFabricMaps=getListFabricMaps(customers,listFabrics);
+		JSONArray jsonArrays1=new JSONArray();
+		String code=purchaseWarehousingMapper.getMaxCode("cSBVCode","SaleBillVouch where cvouchtype=27","cSBVCode");//发票号
+
+		for (String customer : customers.keySet()){
+			SyPackingListFabric syPackingListFabric=listFabricMaps.get(customer).get(0);
+			//List<SyPackingListFabricItem> listFabricItems=syPackingListFabric.getSyPackingListFabricItem();//需要进行分组
+			List<SyPackingListFabricItem> listFabricItems=listFabricItemMaps.get(customer);
+			//System.out.println("codes.size\t"+codes.size());
+			System.out.println("codes\t"+codes);
+			List<Map<String,Object>> invoices=getInvoices(customers.get(customer));
+			JSONObject  jsonObject1=new JSONObject();
+
+			Map<String,Object> order=syPackingListTailoringMapper.getSoMainCode(syPackingListFabric.getRdrecord32Code());//随便哪一个做主表信息
+			System.out.println("syPackingListFabric.getRdrecord32Code\t"+order);
+
+			code=org.jeecg.modules.system.util.oConvertUtils.addOne(code);
+			jsonObject1.put("CVOUCHCODE",code);//发票号
+			jsonObject1.put("CMAKER","进出口平台管理员");//制单人
+			jsonObject1.put("CVERIFIER","进出口平台管理员");//审核人
+			jsonObject1.put("CACCID","103");//账套号
+			jsonObject1.put("CTYPE","");//发票类型
+			jsonObject1.put("CGLTYPE","销售出库单");//上游单据
+			jsonObject1.put("CDEFINE11",syPackingListFabric.getEndCustomer());//最终客户
+
+			jsonObject1.put("DDATE",syPackingListFabric.getLatestDateOfShipment2().substring(0,10));//日期
+			jsonObject1.put("CDEFINE4",syPackingListFabric.getTheFinalShippingDate());//最终船期
+			jsonObject1.put("CDEFINE6",syPackingListFabric.getTheFinalShippingDate2());//合同日期
+			jsonObject1.put("CDEFINE10",syPackingListFabric.getShippingOrderNumber());//托书号
+			//{cBusType=普通销售, cPayCode=null, cDepCode=TSM01, cSOCode=SYE511-马菲羊-面料, cPersonCode=T0148, cCusCode=T020001, cSTCode=02, cexch_name=美元, iExchRate=6.7428}
+			System.out.println("syPackingListFabric.getSupplierCode()\t"+syPackingListFabric.getSupplierCode());
+			if(syPackingListFabric.getSupplierCode()!=null){
+				String	venName=syPackingListTailoringMapper.getCvenName(syPackingListFabric.getSupplierCode());
+				//map.put("CDEFINE12",venName);//供应商(打印)全称
+				jsonObject1.put("CDEFINE12",venName);//供应商全称
+			}
+			jsonObject1.put("CBUSTYPE",order.get("cBusType"));//业务类型
+			jsonObject1.put("CCUSCODE",order.get("cCusCode"));//客户编码
+			jsonObject1.put("CDEPCODE",order.get("cDepCode"));//部门编码
+			jsonObject1.put("SALETPYECODE",order.get("cSTCode"));//销售类型编码
+			jsonObject1.put("IEXCHRATE",order.get("iExchRate"));//汇率
+			jsonObject1.put("CEXCH_NAME",order.get("cexch_name"));//币种名称
+			if(!order.get("cexch_name").equals("人民币")){//不为人民币
+				SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-M-dd");
+				String dd = sf1.format(new Date());
+				String rateSplit[] = dd.split("-");
+				Map<String, Object> rate= syShippingOrderMapper.queryU8Rate(rateSplit[0], rateSplit[1]);
+				jsonObject1.put("IEXCHRATE",rate.get("nflat").toString());//汇率(如果传空,接口默认1)cPayCode
+			}
+			JSONArray jsonArrays=new JSONArray();
+			for (SyPackingListFabricItem item : listFabricItems){
+				JSONObject  jsonObject=new JSONObject();
+				if(item.getMasterMetering().equalsIgnoreCase("KG")){
+					jsonObject.put("IQUANTITY",item.getNetWeight());//净重
+				}else{
+					jsonObject.put("IQUANTITY",item.getActualDeclaredQuantity());//实际报关数量
+				}
+				jsonObject.put("CINVCODE",item.getInventoryCode());//存货编码
+				jsonObject.put("DISAUTOIDCOL","DISAUTOIDCOL");//对应类型
+				boolean bool=true;
+				for (Map<String,Object> map : invoices){
+					if(Double.parseDouble(map.get("iQuantity").toString())==Double.parseDouble(jsonObject.get("IQUANTITY").toString())&&
+							map.get("cInvCode").toString().equalsIgnoreCase(item.getInventoryCode())){
+						jsonObject.put("AUTOID_DIS",map.get("AutoID"));
+						//System.out.println("map\t"+map);
+						getcFree(jsonObject,map);
+						//invoices.remove(map);
+						bool=false;
+						break;
+					}
+				}
+				if(bool){
+					//System.out.println("tid\t"+item.getId());
+					//System.out.println("tpid\t"+item.getSyPackingListFabricId());
+				}
+				jsonObject.put("CDEFINE23",syPackingListTailoringMapper.getUnit(item.getInventoryCode()));//报关单位
+				jsonObject.put("CDEFINE31",item.getDeclarationName());//存货名称
+				String iTaxRate=syPackingListFabricItemMapper.getItaxRate(item.getOmpoIdItem());
+				if(iTaxRate!=null){
+					jsonObject.put("iTaxRate",iTaxRate);//税率
+					jsonObject1.put("iTaxRate",iTaxRate);//税率
+				}
+				jsonObject.put("CWHCODE",syPackingListFabricItemMapper.getVencode(item.getSupplier()));//获取仓库编码
+				jsonArrays.add(jsonObject);
+				//getcFree(jsonObject,jsonObject);
+				//System.out.println("jsonObject\n"+jsonObject);
+			}
+			jsonObject1.put("DETAILList",jsonArrays);
+			jsonArrays1.add(jsonObject1);
+			Map<String,List<String>> maps=new HashMap<>();//key:客户编码-字符,value:主表id-数组 用于区分维度完成分组条件
+			System.out.println("jsonObject\n"+jsonArrays.get(0));
+			//System.out.println("jsonArrays.size\t"+jsonArrays.size());
+			//System.out.println("listFabrics.size\t"+listFabrics.size());
+			//System.out.println("listFabricItems.size\t"+listFabricItems.size());
+			long endTime = System.currentTimeMillis();
+			System.out.println("互相插入数据时用的时间:" + (endTime - startTime) + "ms");
+		}
+		System.out.println("jsonArrays1\t"+jsonArrays1);
+		return "";
+	}
+
+	@Override
+	public List<SyPackingListFabric> queryByList(String id) {
+		return syPackingListFabricMapper.queryByList(id);
+	}
+
+	public List<Map<String,Object>> getInvoices(List<String> codes){
+		List<Map<String,Object>> invoices=syPackingListFabricItemMapper.getInvoice(codes.toArray(new String[codes.size()]));
+		System.out.println("invoices.size\t"+invoices.size());
+		System.out.println("invoices\t"+invoices);
+		return invoices;
+	}
+
+	public Map<String,List<String>> getCustomers(List<String> codes){
+		List<Map<String,Object>> customers=syPackingListFabricMapper.getCustomers(codes.toArray(new String[codes.size()]));
+		Map<String,List<String>> mapLists=new HashMap<>();
+		System.out.println("customers.size\t"+customers.size());
+		System.out.println("customers\t"+customers);
+		for (Map<String,Object> map : customers){
+			if(mapLists.containsKey(map.get("cCusCode"))){
+				mapLists.get(map.get("cCusCode").toString()).add(map.get("ccode").toString());
+			}else{
+				List<String> list=new ArrayList<>();
+				list.add(map.get("ccode").toString());
+				mapLists.put(map.get("cCusCode").toString(),list);
+			}
+		}
+		return mapLists;
+	}
+
+	public Map<String,List<SyPackingListFabric>> getListFabricMaps(Map<String,List<String>> customers,List<SyPackingListFabric> listFabrics){
+		Map<String,List<SyPackingListFabric>> mapLists=new HashMap<>();
+		for (String customer: customers.keySet()){
+			List<String> list=customers.get(customer);
+			List<SyPackingListFabric> listTailorings=new ArrayList<>();
+			for (SyPackingListFabric fabric : listFabrics){
+				if (list.contains(fabric.getRdrecord32Code())){
+					listTailorings.add(fabric);
+				}
+			}
+			mapLists.put(customer,listTailorings);
+		}
+		return mapLists;
+	}
+
+	public Map<String,List<SyPackingListFabricItem>> getListFabricItemMaps(Map<String,List<String>> customers,List<SyPackingListFabric> listFabrics){
+		Map<String,List<SyPackingListFabricItem>> mapLists=new HashMap<>();
+		for (String customer: customers.keySet()){
+			List<String> list=customers.get(customer);
+			List<SyPackingListFabricItem> listFabricItems=new ArrayList<>();
+			for (SyPackingListFabric fabric : listFabrics){
+				if (list.contains(fabric.getRdrecord32Code())){
+					listFabricItems.addAll(fabric.getSyPackingListFabricItem());
+				}
+			}
+			mapLists.put(customer,listFabricItems);
+		}
+		return mapLists;
+	}
+
+
+	public List<String> getList(List<SyPackingListFabric> listFabrics){
+		List<String> ids=new ArrayList<>();//获取出库单号
+		for (SyPackingListFabric syPackingListFabric : listFabrics){
+			if(syPackingListFabric.getDocumentNo().indexOf("ML")>-1){
+				if(syPackingListFabric.getRecordingCode()!=null){
+					String [] strs=syPackingListFabric.getRecordingCode().split(";");
+					for (String str : strs){
+						if(str.indexOf("103账套销售出库单")>-1){
+							ids.add(str.split(":")[1]);
+							syPackingListFabric.setRdrecord32Code(str.split(":")[1]);
+						}
+					}
+				}
+			}else if(syPackingListFabric.getDocumentNo().substring(0,3).equals("103")){
+				ids.add(syPackingListFabric.getDocumentNo().substring(3));
+				syPackingListFabric.setRdrecord32Code(syPackingListFabric.getDocumentNo().substring(3));
+			}
+		}
+		return ids;
+	}
 }

+ 51 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java

@@ -47,6 +47,7 @@ import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
 import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListService;
 import org.jeecg.modules.spapl.vo.SyPreAssembledPackingListVo;
 import org.jeecg.modules.splfi.entity.SyPackingListFabric;
+import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
 import org.jeecg.modules.splfi.service.ISyPackingListFabricService;
 import org.jeecg.modules.splt.vo.SyPackingListTailoringVo;
 import org.jeecg.modules.system.controller.CommonController;
@@ -1424,8 +1425,7 @@ public class SyPackingListTailoringController implements Job {
 					 }
 					 map.put("customerCode","one");//客户编码
 					 map.put("CVENCODE","one");//供应商编码
-					 map.put("orderNumber","one");//销售订单号
-					 map.put("poid","one");//销售订单id
+					 map.put("orderNumber","one");//销售订单号2
 					 for (int x=0;x<3;x++){//最多循环3次
 						 try {
 							 if (map.get("account").equals("103")){
@@ -1929,4 +1929,53 @@ public class SyPackingListTailoringController implements Job {
 		 return Result.ok(ids);
 	 }*/
 
+	 /**
+	  * 通过id查询
+	  *
+	  * @param id
+	  * @return
+	  */
+	 @AutoLog(value = "测试推送")
+	 @ApiOperation(value="测试推送", notes="测试推送")
+	 @GetMapping(value = "/testPushInvoice")
+	 public Result<List<SyPackingListTailoring>> pushInvoice(@RequestParam(name="id",required=true) String id) {
+		 Result<List<SyPackingListTailoring>> result=new Result<>();
+		 if(oConvertUtils.isEmpty(id)){
+			 result.setSuccess(false);
+			 result.setMessage("id为空");
+			 return result;
+		 }
+		 List<SyPackingListTailoring> listTailorings=syPackingListTailoringService.queryByList(id);
+		 //List<SyPackingListFabricItem> listFabricItems=syPackingListFabricItemService.queryByList(id);//获取托书下所有的主表信
+		 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(listTailorings.get(0).getId());//获取一些日期信息
+		 for (SyPackingListTailoring tailoring : listTailorings){
+			 //System.out.println("madate\t"+mapdate);
+			 if(mapdate!=null){
+				 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null) {
+					 tailoring.setTheFinalShippingDate(mapdate.get("e1").toString());
+				 }
+				 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
+					 tailoring.setTheFinalShippingDate2(mapdate.get("e2").toString());
+				 }
+				 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
+					 tailoring.setLatestDateOfShipment2(mapdate.get("e3").toString());
+				 }
+			 }
+			 List<SyPackingListTailoringItem> tailoringItemList=syPackingListTailoringService.getList(tailoring.getId());
+			 tailoring.setSyPackingListTailoringItemList(tailoringItemList);
+		 }
+		 //String message = syPackingListFabricService.pushInvoice(listFabricItems,listFabrics);
+		 if(listTailorings.size()==0){
+			 result.setSuccess(false);
+			 result.setMessage("未查询到装箱单的数据");
+			 result.setResult(listTailorings);
+			 return result;
+		 }
+		 String message = syPackingListTailoringService.pushInvoice1(listTailorings);
+		 result.setSuccess(true);
+		 result.setMessage(message);
+		 result.setResult(listTailorings);
+		 return result;
+	 }
+
 }

+ 40 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/PushJob.java

@@ -0,0 +1,40 @@
+package org.jeecg.modules.splt.entity;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrder;
+import org.jeecg.modules.documents.syShippingOrder.mapper.SyShippingOrderMapper;
+import org.jeecg.modules.splfi.controller.SyPackingListFabricController;
+import org.jeecg.modules.splt.controller.SyPackingListTailoringController;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.util.List;
+
+public class PushJob implements Job {
+
+
+    @Autowired
+    private SyShippingOrderMapper syShippingOrderMapper;
+
+    @Autowired
+    private SyPackingListTailoringController syPackingListTailoringController;
+
+    @Autowired
+    private SyPackingListFabricController syPackingListFabricController;
+
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        QueryWrapper queryWrapper= new QueryWrapper();
+        queryWrapper.eq("time_Stuta","1");
+        List<SyShippingOrder> orderList=syShippingOrderMapper.selectList(queryWrapper);
+        for (SyShippingOrder order : orderList){
+            if(order.getReadyFabric().equals("成衣")){
+                syPackingListTailoringController.pushInvoice(order.getId());
+            }else{
+                syPackingListTailoringController.pushInvoice(order.getId());
+            }
+        }
+    }
+}

+ 22 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/SyPackingListTailoring.java

@@ -234,14 +234,35 @@ public class SyPackingListTailoring implements Serializable {
 	@TableField(exist = false)
 	private java.lang.String supplierName;
 
+	/**供应商*/
+	@TableField(exist = false)
+	private java.lang.String supplier;
+
 	/**供应商(打印)*/
 	@TableField(exist = false)
 	private java.lang.String supplierCode;
 
+	/*rdrecord32Code*/
+	@ApiModelProperty(value = "暂存销售出库单编码")
+	@TableField(exist = false)
+	private String rdrecord32Code;
+
 	/**装运期限*/
 	@TableField(exist = false)
 	private String latestDateOfShipment2;
 
+	/*public static void main(String[] args) {
+		String code="103账套采购入库单:0000023077;103账套销售发货单:20230407T00908541;103账套销售出库单:0000008778;101账套采购入库单:0000023501;101账套采购发票单:0000018078";
+		String [] strs=code.split(";");
+		if(code!=null){
+			for (String str : strs){
+				System.out.println("str\t"+str);
+				if(str.indexOf("103账套销售出库单")>-1){
+					System.out.println("出库单\t"+str.split(":")[1]);
+				}
+			}
+		}
+	}*/
 
 	/**是否被参照(0:无,1:被预托书参照,2:被装箱单参照)*/
 	//@Excel(name = "是否被参照(0:无,1:被预托书参照,2:被装箱单参照)", width = 15)
@@ -267,4 +288,5 @@ public class SyPackingListTailoring implements Serializable {
 		elementsId=params[9];// 申报要素ID
 		syPreAssembledPackingListId=params[10];// 主表id
 	}
+
 }

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/SyPackingListTailoringItemMapper.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.splt.mapper;
 
 import java.util.List;
+import java.util.Map;
 
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import org.apache.ibatis.annotations.Param;
@@ -43,4 +44,7 @@ public interface SyPackingListTailoringItemMapper extends BaseMapper<SyPackingLi
 	@InterceptorIgnore(tenantLine = "true")
 	public Integer insertBatch(@Param("list") List<SyPackingListTailoringItem> item);
 
+    List<Map<String, Object>> getInvoice1(@Param("codes") String[] toArray);
+
+	String getiTaxPrice(String id);
 }

+ 7 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/SyPackingListTailoringMapper.java

@@ -71,4 +71,11 @@ public interface SyPackingListTailoringMapper extends BaseMapper<SyPackingListTa
     //获取目标行号   参数当前数据库,目标数据库,销售订单号,目标账套号,行号
     public String getIvouchrowno(@Param("params1") String params1,@Param("params2") String params2,@Param("params3") String params3
             ,@Param("params4") String params4,@Param("params5") String params5);
+
+    public List<SyPackingListTailoring> queryByList(String id);
+
+    List<Map<String, Object>> getSuppliers(@Param("codes")String[] toArray);
+
+    //获取供应商,区分来源
+    public Map<String,Object> getSoMainCode(String id);
 }

+ 20 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/xml/syPackingListTailoringItemMapper.xml

@@ -339,4 +339,24 @@
 
 	</select>
 
+
+	<select id="getInvoice1"  parameterType="java.lang.String" resultType="java.util.HashMap">
+		select * from RdRecords01  where ID in
+		(select ID  from RdRecord01
+		where ccode in
+		<foreach collection="codes" item="value" index="index" open="(" separator="," close=")">
+			#{value}
+		</foreach>
+		)
+	</select>
+
+	<select id="getiTaxPrice" parameterType="java.lang.String" resultType="java.lang.String">
+        select
+        PO_Podetails.iTaxPrice iTaxPrice
+        from rdrecords01
+        left join PO_Podetails
+        on PO_Podetails.id =rdrecords01.iPOsID
+        where rdrecords01.autoid=#{value }
+    </select>
+
 </mapper>

+ 40 - 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/xml/syPackingListTailoringMapper.xml

@@ -294,15 +294,17 @@
     </select>
 
     <select id="getSyShippingOrder" resultType="java.util.HashMap"  parameterType="java.lang.String">
-        select the_final_shipping_date as e1,date_sub(the_final_shipping_date, interval 60 day) e2,
-         latest_Date_Of_Shipment e3,the_Documents_State e4
-         from sy_shipping_order
-		where id in
-		(select sy_shipping_order_item_id
-		from sy_shipping_order_item
-		where tailoring_fabric_id=#{value}  )
-		 and del_flag=0
-		 limit 1
+        select
+            the_final_shipping_date as e1,
+            date_sub(the_final_shipping_date, interval 60 day) e2,
+            latest_Date_Of_Shipment e3,
+            the_Documents_State e4
+        from sy_shipping_order
+            where id in
+		    (select sy_shipping_order_item_id
+		     from sy_shipping_order_item
+		        where tailoring_fabric_id=#{value} )
+		    and del_flag=0  limit 1
     </select>
 
 
@@ -322,4 +324,33 @@
         where cInvCode=#{value }
     </select>
 
+    <select id="queryByList"  parameterType="java.lang.String" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoring">
+		select   *,
+		    (select supplier from sy_packing_list_tailoring_item
+		     where sy_packing_list_tailoring_id=sy_packing_list_tailoring.id limit 1) supplier
+		from sy_packing_list_tailoring
+		where del_flag=0 and id in
+		(select tailoring_fabric_id
+		from sy_shipping_order_item
+		where sy_shipping_order_item_id=#{value }
+		and del_flag=0)
+	</select>
+
+    <select id="getSuppliers"  parameterType="java.lang.String" resultType="java.util.HashMap">
+        select cVenCode ,ccode  from rdrecord01
+        where ccode in
+        <foreach collection="codes" item="value" index="index" open="(" separator="," close=")">
+            #{value}
+        </foreach>
+    </select>
+
+    <select id="getSoMainCode" parameterType="java.lang.String" resultType="java.util.HashMap">
+        select cPersonCode,cDepCode,cBusType,cPayCode,cexch_name,iExchRate,cCusCode,cSOCode,cSTCode,cexch_name
+        from SO_SOMain WHERE  cSOCode=
+        (select top 1 cSOCode  from DispatchList where cDLCode
+        in (select cbuscode from rdrecord32
+        where ccode =#{VALUE }
+         ) )
+    </select>
+
 </mapper>

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/ISyPackingListTailoringService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrderItem;
+import org.jeecg.modules.splfi.entity.SyPackingListFabric;
 import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
 import org.jeecg.modules.splt.entity.SyPackingListTailoring;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -126,4 +127,8 @@ public interface ISyPackingListTailoringService extends IService<SyPackingListTa
 	public String getIvouchrowno( String params1, String params2,  String params3
 			,  String params4, String params5);
 
+	String pushInvoice1(List<SyPackingListTailoring> listTailorings);
+
+	List<SyPackingListTailoring> queryByList(String id);
+
 }

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringItemServiceImpl.java

@@ -27,8 +27,8 @@ public class SyPackingListTailoringItemServiceImpl extends ServiceImpl<SyPacking
 	public List<SyPackingListTailoringItem> selectByMainId(String mainId) {
 		List<SyPackingListTailoringItem> items=syPackingListTailoringItemMapper.selectByMainId(mainId);
 		for (SyPackingListTailoringItem item : items){
-			System.out.println("withcode"+item.getWithCode());
-			System.out.println("total"+item.getTotal());
+			//System.out.println("withcode"+item.getWithCode());
+			//System.out.println("total"+item.getTotal());
 			item.setSizeTables(syPreAssembledPackingListItemService.selectSize(item.getWithCode(),item.getTotal()));
 		}
 		return items;

+ 203 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -21,7 +21,10 @@ import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
 import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
 import org.jeecg.modules.spapl.mapper.SyPreAssembledPackingListItemMapper;
 import org.jeecg.modules.spapl.mapper.SyPreAssembledPackingListMapper;
+import org.jeecg.modules.splfi.entity.SyPackingListFabric;
 import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
+import org.jeecg.modules.splfi.mapper.SyPackingListFabricItemMapper;
+import org.jeecg.modules.splfi.mapper.SyPackingListFabricMapper;
 import org.jeecg.modules.splt.entity.SyPackingListTailoring;
 import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
 import org.jeecg.modules.splt.mapper.SyPackingListTailoringItemMapper;
@@ -587,6 +590,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 	 */
 	@Override
 	public SyPackingListTailoring queryId(String id) {
+		long start= System.currentTimeMillis();
 		SyPackingListTailoring syPackingListTailoring=syPackingListTailoringMapper.getMainId(id);
 		List<SyPackingListTailoringItem> items=syPackingListTailoringItemMapper.queryId(id);
 		List<SizeTable> size=syPackingListTailoringItemMapper.sizes(syPackingListTailoring.getId());
@@ -595,6 +599,8 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			item.setSizeTables(syPackingListTailoringItemMapper.size(item.getGroupId(),item.getSyPackingListTailoringId()));
 		}
 		syPackingListTailoring.setSyPackingListTailoringItemList(items);
+		long end= System.currentTimeMillis();
+		System.out.println("耗费时间\t"+(end-start)+"ms");
 		return syPackingListTailoring;
 	}
 
@@ -1507,6 +1513,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 						}
 					case "2":
 						text(mapList3,"销售发货单");
+
 						JSONArray resturn3 = InterfaceConnUtils.doPost(mapList3,"consignment_import");//销售发货单
 						recording=result(main,resturn3,"销售发货单",((Map) mapList.get(0)).get("CACCID").toString(),"3");//销售发货单
 						maps.get(account).put("code",resturn3.getJSONObject(0).get("U8ReceiptNo").toString());
@@ -1900,4 +1907,200 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 	public String getIvouchrowno(String params1, String params2, String params3, String params4, String params5) {
 		return syPackingListTailoringMapper.getIvouchrowno(params1,params2,params3,params4,params5);
 	}
+
+	@Override
+	@DS("multi-two")
+	public String pushInvoice1(List<SyPackingListTailoring> listTailorings) {
+		long startTime = System.currentTimeMillis();
+		String message="";
+		//List<SyPackingListFabricItem> listFabricItems=syPackingListFabricItemMapper.queryByList(id);
+		//List<SyPackingListFabric> listFabrics=syPackingListFabricMapper.queryByList(id);//获取托书下所有的主表信息
+		List<String> codes=getList(listTailorings);//获取出库单号
+		Map<String,List<String>> customers=getSuppliers(codes);//key:供应商编码,value:出库单id
+		Map<String,List<SyPackingListTailoringItem>> listTailoringItemMaps=getListTailoringItemMaps(customers,listTailorings);//key:供应商编码,value:对应子表
+		Map<String,List<SyPackingListTailoring>> listTailoringMaps=getListTailoringMaps(customers,listTailorings);//key:供应商编码,value:对应主表
+		JSONArray jsonArrays1=new JSONArray();
+		String code=purchaseWarehousingMapper.getMaxCode("cpbvcode ","PurBillVouch","cmaketime");//发票号
+
+		for (String customer : customers.keySet()){
+			SyPackingListTailoring syPackingListTailoring=listTailoringMaps.get(customer).get(0);
+			Map<String, Object> orderData=syPackingListTailoringMapper.getOmOrPo("po_pomain",
+					"cpoid=(select  top 1 cOrderCode from rdrecord01 where ccode='"+syPackingListTailoring.getRdrecord32Code()+"')","poid");
+			System.out.println("orderData\t"+orderData);
+			String cvenName=syPackingListTailoringMapper.getCvenName(syPackingListTailoring.getSupplierCode());//供应商编码
+			//List<SyPackingListFabricItem> listFabricItems=syPackingListFabric.getSyPackingListFabricItem();//需要进行分组
+			List<SyPackingListTailoringItem> listTailoringItems=listTailoringItemMaps.get(customer);
+			//System.out.println("codes.size\t"+codes.size());
+			System.out.println("codes\t"+codes);
+			List<Map<String,Object>> invoices=getInvoices(customers.get(customer));
+			JSONObject  jsonObject1=new JSONObject();
+			code=org.jeecg.modules.system.util.oConvertUtils.addOne(code);
+			jsonObject1.put("CVOUCHCODE",code);//发票号
+			jsonObject1.put("CMAKER","进出口平台管理员");//制单人
+			jsonObject1.put("CVERIFIER","进出口平台管理员");//审核人
+			jsonObject1.put("CACCID","102");//账套号
+			jsonObject1.put("CTYPE","专用");//发票类型
+
+			jsonObject1.put("CGLTYPE","入库单");//上游单据
+			jsonObject1.put("DDATE",syPackingListTailoring.getLatestDateOfShipment2().substring(0,10));//装运期限
+			jsonObject1.put("CDEFINE4",syPackingListTailoring.getTheFinalShippingDate());//最终船期
+			jsonObject1.put("CDEFINE6",syPackingListTailoring.getTheFinalShippingDate2());//合同日期
+			jsonObject1.put("CDEFINE10",syPackingListTailoring.getShippingOrderNumber());//托书号
+
+			jsonObject1.put("CDEFINE12",cvenName);//供应商全称
+			jsonObject1.put("CPAYCODE",orderData.get("cPayCode"));//付款条件编码
+			jsonObject1.put("IEXCHRATE",orderData.get("cexchname"));//汇率
+			jsonObject1.put("CEXCH_NAME",orderData.get("nflat"));//币种名称
+
+			if(!orderData.get("cexchname").equals("人民币")){//不为人民币
+				SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-M-dd");
+				String dd = sf1.format(new Date());
+				String rateSplit[] = dd.split("-");
+				Map<String, Object> rate= syShippingOrderMapper.queryU8Rate(rateSplit[0], rateSplit[1]);
+				jsonObject1.put("IEXCHRATE",rate.get("nflat").toString());//汇率(如果传空,接口默认1)cPayCode
+			}
+			JSONArray jsonArrays=new JSONArray();
+			for (SyPackingListTailoringItem item : listTailoringItems){
+				JSONObject  jsonObject=new JSONObject();
+				jsonObject.put("IQUANTITY",item.getTotal());//净重
+				jsonObject.put("size",item.getSize());//尺码
+				jsonObject.put("CINVCODE",item.getInventoryCode());//存货编码
+				jsonObject.put("CDEFINE28",item.getSmallPo());//小po
+				jsonObject.put("DISAUTOIDCOL","DISAUTOIDCOL");//对应类型
+				boolean bool=true;
+				for (Map<String,Object> map : invoices){
+					if(Double.parseDouble(map.get("iQuantity").toString())==Double.parseDouble(jsonObject.get("IQUANTITY").toString())&&
+							map.get("cInvCode").toString().equalsIgnoreCase(item.getInventoryCode())&&map.get("cFree2").equals(item.getSize())){
+						jsonObject.put("AUTOID_PO",map.get("AutoID"));
+						jsonObject.put("IORITAXCOST",syPackingListTailoringItemMapper.getiTaxPrice(map.get("AutoID").toString()));
+						//System.out.println("map\t"+map);
+						getcFree(jsonObject,map);
+						//invoices.remove(map);
+						bool=false;
+						break;
+					}
+				}
+				if(bool){
+					//System.out.println("tid\t"+item.getId());
+					//System.out.println("tpid\t"+item.getSyPackingListFabricId());
+				}
+				jsonObject.put("CDEFINE23",syPackingListTailoringMapper.getUnit(item.getInventoryCode()));//报关单位
+				jsonObject.put("CDEFINE33",item.getDeclarationName());//存货名称
+				//jsonObject.put("iTaxRate",syPackingListFabricItemMapper.getItaxRate(item.getOmpoIdItem()));//税率
+				//jsonObject.put("CWHCODE",syPackingListFabricItemMapper.getVencode(item.getSupplier()));//获取仓库编码
+				jsonArrays.add(jsonObject);
+				//getcFree(jsonObject,jsonObject);
+				//System.out.println("jsonObject\n"+jsonObject);
+			}
+			jsonObject1.put("DETAILList",jsonArrays);
+			jsonArrays1.add(jsonObject1);
+			Map<String,List<String>> maps=new HashMap<>();//key:客户编码-字符,value:主表id-数组 用于区分维度完成分组条件
+			System.out.println("jsonObject\n"+jsonObject1);
+			//System.out.println("jsonArrays.size\t"+jsonArrays.size());
+			//System.out.println("listFabrics.size\t"+listFabrics.size());
+			//System.out.println("listFabricItems.size\t"+listFabricItems.size());
+			long endTime = System.currentTimeMillis();
+			System.out.println("互相插入数据时用的时间:" + (endTime - startTime) + "ms");
+		}
+		System.out.println("jsonArrays1\n"+jsonArrays1);
+		return "";
+	}
+
+	@Override
+	public List<SyPackingListTailoring> queryByList(String id) {
+		return syPackingListTailoringMapper.queryByList(id);
+	}
+
+	@Autowired
+	private SyPackingListFabricMapper syPackingListFabricMapper;
+	@Autowired
+	private SyPackingListFabricItemMapper syPackingListFabricItemMapper;
+
+	public List<Map<String,Object>> getInvoices(List<String> codes){
+		List<Map<String,Object>> invoices=syPackingListTailoringItemMapper.getInvoice1(codes.toArray(new String[codes.size()]));
+		System.out.println("invoices.size\t"+invoices.size());
+		System.out.println("invoices\t"+invoices);
+		return invoices;
+	}
+
+	public Map<String,List<String>> getCustomers(List<String> codes){
+		List<Map<String,Object>> customers=syPackingListFabricMapper.getCustomers(codes.toArray(new String[codes.size()]));
+		Map<String,List<String>> mapLists=new HashMap<>();
+		System.out.println("customers.size\t"+customers.size());
+		System.out.println("customers\t"+customers);
+		for (Map<String,Object> map : customers){
+			if(mapLists.containsKey(map.get("cCusCode"))){
+				mapLists.get(map.get("cCusCode").toString()).add(map.get("ccode").toString());
+			}else{
+				List<String> list=new ArrayList<>();
+				list.add(map.get("ccode").toString());
+				mapLists.put(map.get("cCusCode").toString(),list);
+			}
+		}
+		return mapLists;
+	}
+
+	public Map<String,List<String>> getSuppliers(List<String> codes){
+		List<Map<String,Object>> suppliers=syPackingListTailoringMapper.getSuppliers(codes.toArray(new String[codes.size()]));
+		Map<String,List<String>> mapLists=new HashMap<>();
+		System.out.println("suppliers.size\t"+suppliers.size());
+		System.out.println("suppliers\t"+suppliers);
+		for (Map<String,Object> map : suppliers){
+			if(mapLists.containsKey(map.get("cVenCode"))){
+				mapLists.get(map.get("cVenCode").toString()).add(map.get("ccode").toString());
+			}else{
+				List<String> list=new ArrayList<>();
+				list.add(map.get("ccode").toString());
+				mapLists.put(map.get("cVenCode").toString(),list);
+			}
+		}
+		System.out.println("mapLists\t"+mapLists);
+		return mapLists;
+	}
+
+	public Map<String,List<SyPackingListTailoringItem>> getListTailoringItemMaps(Map<String,List<String>> customers,List<SyPackingListTailoring> listTailorings){
+		Map<String,List<SyPackingListTailoringItem>> mapLists=new HashMap<>();
+		for (String customer: customers.keySet()){
+			List<String> list=customers.get(customer);
+			List<SyPackingListTailoringItem> listTailoringItems=new ArrayList<>();
+			for (SyPackingListTailoring tailoring : listTailorings){
+				if (list.contains(tailoring.getRdrecord32Code())){
+					listTailoringItems.addAll(tailoring.getSyPackingListTailoringItemList());
+				}
+			}
+			mapLists.put(customer,listTailoringItems);
+		}
+		return mapLists;
+	}
+
+	public Map<String,List<SyPackingListTailoring>> getListTailoringMaps(Map<String,List<String>> customers,List<SyPackingListTailoring> listTailorings){
+		Map<String,List<SyPackingListTailoring>> mapLists=new HashMap<>();
+		for (String customer: customers.keySet()){
+			List<String> list=customers.get(customer);
+			List<SyPackingListTailoring> listTailorings2=new ArrayList<>();
+			for (SyPackingListTailoring tailoring : listTailorings){
+				if (list.contains(tailoring.getRdrecord32Code())){
+					listTailorings2.add(tailoring);
+				}
+			}
+			mapLists.put(customer,listTailorings2);
+		}
+		return mapLists;
+	}
+
+	public List<String> getList(List<SyPackingListTailoring> listFabrics){
+		List<String> ids=new ArrayList<>();//获取出库单号
+		for (SyPackingListTailoring syPackingListFabric : listFabrics){
+			if(syPackingListFabric.getRecordingCode()!=null){
+				String [] strs=syPackingListFabric.getRecordingCode().split(";");
+				for (String str : strs){
+					if(str.indexOf("102账套采购入库单")>-1){
+						ids.add(str.split(":")[1]);
+						syPackingListFabric.setRdrecord32Code(str.split(":")[1]);
+					}
+				}
+			}
+		}
+		return ids;
+	}
 }