|
@@ -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;
|
|
|
+ }
|
|
|
}
|