|  | @@ -1,13 +1,20 @@
 | 
											
												
													
														|  |  package org.jeecg.modules.splfi.service.impl;
 |  |  package org.jeecg.modules.splfi.service.impl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import com.alibaba.fastjson.JSONObject;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 |  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 |  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
											
												
													
														|  |  import org.apache.shiro.SecurityUtils;
 |  |  import org.apache.shiro.SecurityUtils;
 | 
											
												
													
														|  |  import org.jeecg.common.system.vo.LoginUser;
 |  |  import org.jeecg.common.system.vo.LoginUser;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.documents.orderData.entity.SyOrderDataItem;
 | 
											
												
													
														|  |  import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
 |  |  import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
 | 
											
												
													
														|  |  import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
 |  |  import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
 | 
											
												
													
														|  |  import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsItemMapper;
 |  |  import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsItemMapper;
 | 
											
												
													
														|  |  import org.jeecg.modules.documents.shippingDetails.service.impl.SyShippingDetailsItemServiceImpl;
 |  |  import org.jeecg.modules.documents.shippingDetails.service.impl.SyShippingDetailsItemServiceImpl;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.openApi.entity.DxpDataPlan;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.openApi.service.IDxpDataPlanService;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.openApi.service.ISenYuDataSourceOne;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.openApi.service.ISenYuDataSourceThree;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.openApi.service.ISenYuDataSourceTwo;
 | 
											
												
													
														|  |  import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
 |  |  import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
 | 
											
												
													
														|  |  import org.jeecg.modules.splfi.entity.SyPackingListFabric;
 |  |  import org.jeecg.modules.splfi.entity.SyPackingListFabric;
 | 
											
												
													
														|  |  import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
 |  |  import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
 | 
											
										
											
												
													
														|  | @@ -15,6 +22,7 @@ import org.jeecg.modules.splfi.mapper.SyPackingListFabricItemMapper;
 | 
											
												
													
														|  |  import org.jeecg.modules.splfi.mapper.SyPackingListFabricMapper;
 |  |  import org.jeecg.modules.splfi.mapper.SyPackingListFabricMapper;
 | 
											
												
													
														|  |  import org.jeecg.modules.splfi.service.ISyPackingListFabricService;
 |  |  import org.jeecg.modules.splfi.service.ISyPackingListFabricService;
 | 
											
												
													
														|  |  import org.jeecg.modules.system.entity.SysUser;
 |  |  import org.jeecg.modules.system.entity.SysUser;
 | 
											
												
													
														|  | 
 |  | +import org.jeecg.modules.system.util.JsonChangeUtils;
 | 
											
												
													
														|  |  import org.jeecg.modules.system.util.oConvertUtils;
 |  |  import org.jeecg.modules.system.util.oConvertUtils;
 | 
											
												
													
														|  |  import org.springframework.scheduling.annotation.Scheduled;
 |  |  import org.springframework.scheduling.annotation.Scheduled;
 | 
											
												
													
														|  |  import org.springframework.stereotype.Service;
 |  |  import org.springframework.stereotype.Service;
 | 
											
										
											
												
													
														|  | @@ -42,13 +50,21 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 | 
											
												
													
														|  |  	private SyPackingListFabricItemMapper syPackingListFabricItemMapper;
 |  |  	private SyPackingListFabricItemMapper syPackingListFabricItemMapper;
 | 
											
												
													
														|  |  	@Autowired
 |  |  	@Autowired
 | 
											
												
													
														|  |  	private SyShippingDetailsItemMapper syShippingDetailsItemMapper;
 |  |  	private SyShippingDetailsItemMapper syShippingDetailsItemMapper;
 | 
											
												
													
														|  | -	
 |  | 
 | 
											
												
													
														|  | 
 |  | +	@Autowired
 | 
											
												
													
														|  | 
 |  | +	private ISenYuDataSourceOne senYuDataSourceOne;
 | 
											
												
													
														|  | 
 |  | +	@Autowired
 | 
											
												
													
														|  | 
 |  | +	private ISenYuDataSourceTwo senYuDataSourceTwo;
 | 
											
												
													
														|  | 
 |  | +	@Autowired
 | 
											
												
													
														|  | 
 |  | +	private ISenYuDataSourceThree senYuDataSourceThree;
 | 
											
												
													
														|  | 
 |  | +	@Autowired
 | 
											
												
													
														|  | 
 |  | +	private IDxpDataPlanService dxpDataPlanService;
 | 
											
												
													
														|  |  	@Override
 |  |  	@Override
 | 
											
												
													
														|  |  	@Transactional
 |  |  	@Transactional
 | 
											
												
													
														|  |  	public SyPackingListFabric saveMain(SyPackingListFabric syPackingListFabric) {
 |  |  	public SyPackingListFabric saveMain(SyPackingListFabric syPackingListFabric) {
 | 
											
												
													
														|  |  		SimpleDateFormat sf= new SimpleDateFormat("yyMMdd");
 |  |  		SimpleDateFormat sf= new SimpleDateFormat("yyMMdd");
 | 
											
												
													
														|  |  		QueryWrapper<SyPackingListFabric> queryWrapperCount=new QueryWrapper<>();
 |  |  		QueryWrapper<SyPackingListFabric> queryWrapperCount=new QueryWrapper<>();
 | 
											
												
													
														|  |  		queryWrapperCount.like("create_time", new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis()));
 |  |  		queryWrapperCount.like("create_time", new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis()));
 | 
											
												
													
														|  | 
 |  | +		queryWrapperCount.eq("is_U8_Data","0");//判断是不是面料
 | 
											
												
													
														|  |  		queryWrapperCount.select("lpad(count(0)+1,6,0) as id");
 |  |  		queryWrapperCount.select("lpad(count(0)+1,6,0) as id");
 | 
											
												
													
														|  |  		String dateNo ="ML"+sf.format(System.currentTimeMillis())+getOne(queryWrapperCount).getId();//获取单据号
 |  |  		String dateNo ="ML"+sf.format(System.currentTimeMillis())+getOne(queryWrapperCount).getId();//获取单据号
 | 
											
												
													
														|  |  		syPackingListFabric.setDelFlag("0");
 |  |  		syPackingListFabric.setDelFlag("0");
 | 
											
										
											
												
													
														|  | @@ -153,9 +169,12 @@ return null;
 | 
											
												
													
														|  |  	public  SyPackingListFabric getSyShippingDetailsData(String[] ids,String [] groupIds) throws ParseException {
 |  |  	public  SyPackingListFabric getSyShippingDetailsData(String[] ids,String [] groupIds) throws ParseException {
 | 
											
												
													
														|  |  		String time= new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis());
 |  |  		String time= new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis());
 | 
											
												
													
														|  |  		SyPackingListFabric syPackingListFabric=syPackingListFabricMapper.getSyShippingDetailsData(ids);
 |  |  		SyPackingListFabric syPackingListFabric=syPackingListFabricMapper.getSyShippingDetailsData(ids);
 | 
											
												
													
														|  | -		syPackingListFabric.setPreparedDate(new SimpleDateFormat("yyyy-MM-dd").parse(time));//获取制单日期
 |  | 
 | 
											
												
													
														|  | -		System.out.println("ids的数据为:\t"+ids[0]+"\ngroupIds为:\t"+groupIds[0]);
 |  | 
 | 
											
												
													
														|  | -		syPackingListFabric.setSyPackingListFabricItem(syPackingListFabricItemMapper.getSyShippingDetailsDatas(ids,groupIds));
 |  | 
 | 
											
												
													
														|  | 
 |  | +		//syPackingListFabric.setPreparedDate(new SimpleDateFormat("yyyy-MM-dd").parse(time));//获取制单日期
 | 
											
												
													
														|  | 
 |  | +		//System.out.println("ids的数据为:\t"+ids[0]+"\ngroupIds为:\t"+groupIds[0]);
 | 
											
												
													
														|  | 
 |  | +		List<SyPackingListFabricItem> syPackingListFabricItems=syPackingListFabricItemMapper.getSyShippingDetailsDatas(ids,groupIds);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		syPackingListFabric.setSyPackingListFabricItem(syPackingListFabricItems);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  		return syPackingListFabric;
 |  |  		return syPackingListFabric;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -171,4 +190,136 @@ return null;
 | 
											
												
													
														|  |  		return syPackingListFabricMapper.queryMain(page,queryWrapper);
 |  |  		return syPackingListFabricMapper.queryMain(page,queryWrapper);
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	/**
 | 
											
												
													
														|  | 
 |  | +	 * 每3分钟拉取一次数据
 | 
											
												
													
														|  | 
 |  | +	 */
 | 
											
												
													
														|  | 
 |  | +	@Override
 | 
											
												
													
														|  | 
 |  | +	@Scheduled(fixedRate=1000*60*3)
 | 
											
												
													
														|  | 
 |  | +	//@Transactional
 | 
											
												
													
														|  | 
 |  | +	public void getU8Data() {
 | 
											
												
													
														|  | 
 |  | +		SimpleDateFormat sf= new SimpleDateFormat("yyMMdd");
 | 
											
												
													
														|  | 
 |  | +		try{
 | 
											
												
													
														|  | 
 |  | +			QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
 | 
											
												
													
														|  | 
 |  | +			queryWrapper.eq("code", "senYu_accessory_data");
 | 
											
												
													
														|  | 
 |  | +			DxpDataPlan dxpDataPlan=dxpDataPlanService.getOne(queryWrapper);
 | 
											
												
													
														|  | 
 |  | +			String time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis());//获取现在时间
 | 
											
												
													
														|  | 
 |  | +			String lastTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dxpDataPlan.getLastTime());
 | 
											
												
													
														|  | 
 |  | +			System.out.println("time:\t"+time);
 | 
											
												
													
														|  | 
 |  | +			System.out.println("lastTime:\t"+lastTime);
 | 
											
												
													
														|  | 
 |  | +			String [] pks=dxpDataPlan.getPkOrg().split(",");
 | 
											
												
													
														|  | 
 |  | +			for (String pk : pks){
 | 
											
												
													
														|  | 
 |  | +				String account=pk.split(":")[1];//获取账套号
 | 
											
												
													
														|  | 
 |  | +				//先插主表数据,然后根据主表id查询子表数据再添加
 | 
											
												
													
														|  | 
 |  | +				String sql="select \n" +
 | 
											
												
													
														|  | 
 |  | +						"a.id u8Id,\n" +
 | 
											
												
													
														|  | 
 |  | +						account+" as account , \n" +
 | 
											
												
													
														|  | 
 |  | +						"'1' as is_U8_Data,\n" +
 | 
											
												
													
														|  | 
 |  | +						"a.cMemo memo,\n" +
 | 
											
												
													
														|  | 
 |  | +						"a.cMaker preparedBy,\n" +
 | 
											
												
													
														|  | 
 |  | +						"a.cDefine10  exportInvoiceNo,\n" +
 | 
											
												
													
														|  | 
 |  | +						"a.dnmaketime  preparedDate\n" +
 | 
											
												
													
														|  | 
 |  | +						"from rdrecord32 a\n" +
 | 
											
												
													
														|  | 
 |  | +						"where " +
 | 
											
												
													
														|  | 
 |  | +						"cCusCode='T020001' and\n" +
 | 
											
												
													
														|  | 
 |  | +						" (select count(1) from \n" +
 | 
											
												
													
														|  | 
 |  | +						"rdrecords32 left join Inventory\n" +
 | 
											
												
													
														|  | 
 |  | +						"on rdrecords32.cInvCode=Inventory.cInvCode \n" +
 | 
											
												
													
														|  | 
 |  | +						"where rdrecords32.id=a.id\n" +
 | 
											
												
													
														|  | 
 |  | +						"and cInvCCode not like '01%'\n" +
 | 
											
												
													
														|  | 
 |  | +						"and cInvCCode not like '02%'\n" +
 | 
											
												
													
														|  | 
 |  | +						"and cInvCCode not like '03%'\n" +
 | 
											
												
													
														|  | 
 |  | +						"and cInvCCode not like '04%'\n" +
 | 
											
												
													
														|  | 
 |  | +						"and cInvCCode not like '19%')>0"+
 | 
											
												
													
														|  | 
 |  | +						"and a.dnverifytime>'"+lastTime+"'";//根据最后一次拉去时间
 | 
											
												
													
														|  | 
 |  | +				List<Map<String, Object>> listMain = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +				System.out.println("sql:\t"+sql);
 | 
											
												
													
														|  | 
 |  | +				if(account.equals("903")){
 | 
											
												
													
														|  | 
 |  | +					listMain = senYuDataSourceThree.queryForList(sql);//903
 | 
											
												
													
														|  | 
 |  | +				}else{
 | 
											
												
													
														|  | 
 |  | +					listMain = senYuDataSourceTwo.queryForList(sql);//902
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				if (listMain.size()==0){
 | 
											
												
													
														|  | 
 |  | +					continue;//退出本次循环
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				List<JSONObject> jsonObjects = JsonChangeUtils.toJSONObject(listMain);
 | 
											
												
													
														|  | 
 |  | +				for(JSONObject json : jsonObjects){
 | 
											
												
													
														|  | 
 |  | +					SyPackingListFabric sy = JSONObject.toJavaObject(json, SyPackingListFabric.class);
 | 
											
												
													
														|  | 
 |  | +					QueryWrapper<SyPackingListFabric> queryWrapperCount=new QueryWrapper<>();
 | 
											
												
													
														|  | 
 |  | +					queryWrapperCount.like("create_time", new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis()));//今天生成
 | 
											
												
													
														|  | 
 |  | +					queryWrapper.eq("is_U8_Data","1");//判断是不是辅料
 | 
											
												
													
														|  | 
 |  | +					queryWrapperCount.select("lpad(count(0)+1,6,0) as id");
 | 
											
												
													
														|  | 
 |  | +					String dateNo ="FL"+sf.format(System.currentTimeMillis())+getOne(queryWrapperCount).getId();//获取单据号
 | 
											
												
													
														|  | 
 |  | +					sy.setDocumentNo(dateNo);//单据号
 | 
											
												
													
														|  | 
 |  | +					sy.setU8Id(account+sy.getU8Id());
 | 
											
												
													
														|  | 
 |  | +					sy.setId(sy.getU8Id());
 | 
											
												
													
														|  | 
 |  | +					syPackingListFabricMapper.insert(sy);//添加数据
 | 
											
												
													
														|  | 
 |  | +					String sql2="select " +
 | 
											
												
													
														|  | 
 |  | +							"b.AutoID as u8id ,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.id as u8pid,\n" +
 | 
											
												
													
														|  | 
 |  | +							"left(b.csocode,ISNULL(NULLIF(CHARINDEX('-',b.csocode)-1,-1),len(b.csocode))) as planLotNumber,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.csocode as orderNumber,\n" +
 | 
											
												
													
														|  | 
 |  | +							account+" as account,\n"+
 | 
											
												
													
														|  | 
 |  | +							"f.AutoID  as isosid,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.iQuantity  as inventoryQuantity,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cbMemo as remarks,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cbMemo as memo,\n" +
 | 
											
												
													
														|  | 
 |  | +							"f.iTaxUnitPrice as price,\n"+
 | 
											
												
													
														|  | 
 |  | +							"d.cPersonName as salesman,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cDefine22 as itemNumber,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cFree6 as gramWeight,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cFree1 as colour,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cInvCode as inventoryCode,\n" +
 | 
											
												
													
														|  | 
 |  | +							"c.cInvName as inventoryName,\n" +
 | 
											
												
													
														|  | 
 |  | +							"c.cInvName as composition,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cFree2 as size ,\n" +
 | 
											
												
													
														|  | 
 |  | +							"e.cComUnitName as masterMetering,\n" +
 | 
											
												
													
														|  | 
 |  | +							"b.cFree4 as width,\n" +
 | 
											
												
													
														|  | 
 |  | +							"c.cInvStd  as specificationAndModel\n" +
 | 
											
												
													
														|  | 
 |  | +							"from rdrecord32 a \n" +
 | 
											
												
													
														|  | 
 |  | +							"left JOIN rdrecords32 b\n" +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							"on a.id=b.id \n" +
 | 
											
												
													
														|  | 
 |  | +							"left join Inventory c\n" +
 | 
											
												
													
														|  | 
 |  | +							"on b.cInvCode=c.cInvCode\n" +
 | 
											
												
													
														|  | 
 |  | +							"LEFT JOIN Person  d\n" +
 | 
											
												
													
														|  | 
 |  | +							"ON d.cPersonCode = a.cPersonCode\n" +
 | 
											
												
													
														|  | 
 |  | +							"left join ComputationUnit e\n" +
 | 
											
												
													
														|  | 
 |  | +							"on c.cComunitCode=e.cComunitCode\n" +
 | 
											
												
													
														|  | 
 |  | +							"left join SO_SODetails f\n" +
 | 
											
												
													
														|  | 
 |  | +							"on b.iorderdid=f.iSOsID\n" +
 | 
											
												
													
														|  | 
 |  | +							"where cInvCCode not like '01%'\n" +
 | 
											
												
													
														|  | 
 |  | +							"and cInvCCode not like '02%'\n" +
 | 
											
												
													
														|  | 
 |  | +							"and cInvCCode not like '03%'\n" +
 | 
											
												
													
														|  | 
 |  | +							"and cInvCCode not like '04%'\n" +
 | 
											
												
													
														|  | 
 |  | +							"and cInvCCode not like '19%'\n" +
 | 
											
												
													
														|  | 
 |  | +							"and cCusCode='T020001'\n" +
 | 
											
												
													
														|  | 
 |  | +							"and a.id='"+sy.getU8Id().substring(3)+"'";
 | 
											
												
													
														|  | 
 |  | +					List<Map<String, Object>> list = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +					String groupId=oConvertUtils.getId();//获取id
 | 
											
												
													
														|  | 
 |  | +					if(account.equals("903")){
 | 
											
												
													
														|  | 
 |  | +						list = senYuDataSourceThree.queryForList(sql2);//903
 | 
											
												
													
														|  | 
 |  | +					}else{
 | 
											
												
													
														|  | 
 |  | +						list = senYuDataSourceTwo.queryForList(sql2);//902
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(list);
 | 
											
												
													
														|  | 
 |  | +					for (JSONObject json1 :  jianSon){
 | 
											
												
													
														|  | 
 |  | +						SyPackingListFabricItem sy1 = JSONObject.toJavaObject(json1, SyPackingListFabricItem.class);
 | 
											
												
													
														|  | 
 |  | +						sy1.setU8Id(account+sy1.getU8Id());//获取账套号+id
 | 
											
												
													
														|  | 
 |  | +						sy1.setId(sy1.getU8Id());
 | 
											
												
													
														|  | 
 |  | +						sy1.setActualDeclaredQuantity(sy1.getInventoryQuantity());//给报关数量赋值
 | 
											
												
													
														|  | 
 |  | +						sy1.setGroupId(groupId);
 | 
											
												
													
														|  | 
 |  | +						sy1.setSyPackingListFabricId(sy.getId());//获取主表id
 | 
											
												
													
														|  | 
 |  | +						sy1.setU8Pid(sy.getU8Id());
 | 
											
												
													
														|  | 
 |  | +						syPackingListFabricItemMapper.insert(sy1);//插入新数据
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					//sys.add(sy);//集合
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +			dxpDataPlanService.updateLastTime2(time,"senYu_accessory_data");//修改最后抓取时间
 | 
											
												
													
														|  | 
 |  | +		}catch (Exception e){
 | 
											
												
													
														|  | 
 |  | +			System.out.println("辅料更新失败:"+e.getMessage());
 | 
											
												
													
														|  | 
 |  | +			log.error(e.getMessage());
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +		//return sys;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  |  }
 |  |  }
 |