|
@@ -1,13 +1,20 @@
|
|
|
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.metadata.IPage;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
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.VO.SyShippingDetailsVo;
|
|
|
import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsItemMapper;
|
|
|
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.splfi.entity.SyPackingListFabric;
|
|
|
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.service.ISyPackingListFabricService;
|
|
|
import org.jeecg.modules.system.entity.SysUser;
|
|
|
+import org.jeecg.modules.system.util.JsonChangeUtils;
|
|
|
import org.jeecg.modules.system.util.oConvertUtils;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -42,13 +50,21 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
|
|
|
private SyPackingListFabricItemMapper syPackingListFabricItemMapper;
|
|
|
@Autowired
|
|
|
private SyShippingDetailsItemMapper syShippingDetailsItemMapper;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private ISenYuDataSourceOne senYuDataSourceOne;
|
|
|
+ @Autowired
|
|
|
+ private ISenYuDataSourceTwo senYuDataSourceTwo;
|
|
|
+ @Autowired
|
|
|
+ private ISenYuDataSourceThree senYuDataSourceThree;
|
|
|
+ @Autowired
|
|
|
+ private IDxpDataPlanService dxpDataPlanService;
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public SyPackingListFabric saveMain(SyPackingListFabric syPackingListFabric) {
|
|
|
SimpleDateFormat sf= new SimpleDateFormat("yyMMdd");
|
|
|
QueryWrapper<SyPackingListFabric> queryWrapperCount=new QueryWrapper<>();
|
|
|
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");
|
|
|
String dateNo ="ML"+sf.format(System.currentTimeMillis())+getOne(queryWrapperCount).getId();//获取单据号
|
|
|
syPackingListFabric.setDelFlag("0");
|
|
@@ -153,9 +169,12 @@ return null;
|
|
|
public SyPackingListFabric getSyShippingDetailsData(String[] ids,String [] groupIds) throws ParseException {
|
|
|
String time= new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis());
|
|
|
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;
|
|
|
}
|
|
|
|
|
@@ -171,4 +190,136 @@ return null;
|
|
|
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;
|
|
|
+ }
|
|
|
}
|