Browse Source

订单接口

zengtx 2 years ago
parent
commit
b5b5cf5cc8

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java

@@ -15,6 +15,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.core.env.Environment;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -24,6 +25,7 @@ import java.net.UnknownHostException;
 */
 @Slf4j
 @SpringBootApplication
+@EnableScheduling
 @EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
 public class JeecgSystemApplication extends SpringBootServletInitializer {
 

+ 15 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/orderData/controller/SyOrderDataController.java

@@ -84,7 +84,21 @@ public class SyOrderDataController extends JeecgController<SyOrderData, ISyOrder
 		syOrderDataService.save(syOrderData);
 		return Result.OK("添加成功!");
 	}
-	
+
+	 /**
+	  * 同步
+	  *
+	  * @param syOrderData
+	  * @return
+	  */
+	 @AutoLog(value = "订单主表-同步")
+	 @ApiOperation(value="订单主表-同步", notes="订单主表-同步")
+	 @PostMapping(value = "/tongBu")
+	 public Result<?> tongBu(@RequestBody SyOrderData syOrderData) {
+		 syOrderDataService.doQuerySyOrder();
+		 return Result.OK("同步成功!");
+	 }
+
 	/**
 	 * 编辑
 	 *

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/orderData/service/ISyOrderDataService.java

@@ -10,5 +10,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @Version: V1.0
  */
 public interface ISyOrderDataService extends IService<SyOrderData> {
+     void doQuerySyOrder();
 
 }

+ 154 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/orderData/service/impl/SyOrderDataServiceImpl.java

@@ -1,11 +1,32 @@
 package org.jeecg.modules.documents.orderData.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.documents.orderData.entity.SyOrderData;
+import org.jeecg.modules.documents.orderData.entity.SyOrderDataItem;
 import org.jeecg.modules.documents.orderData.mapper.SyOrderDataMapper;
+import org.jeecg.modules.documents.orderData.service.ISyOrderDataItemService;
 import org.jeecg.modules.documents.orderData.service.ISyOrderDataService;
+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.system.util.JsonChangeUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 订单主表
@@ -14,6 +35,138 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  * @Version: V1.0
  */
 @Service
-public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrderData> implements ISyOrderDataService {
+@Transactional
+public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrderData> implements ISyOrderDataService, ApplicationContextAware {
+
+    private static IDxpDataPlanService dxpDataPlanService;
+
+    private static ISyOrderDataItemService syOrderDataItemService;
+    //数据源one
+    private static ISenYuDataSourceOne senYuDataSourceOne;
+
+    @Override
+    public void doQuerySyOrder() {
+        QuerySyOrder();
+    }
+
+    @Scheduled(cron = "0 51 9 * * ?")
+    public JSONObject QuerySyOrder() {
+        //得到系统时间
+        Date day=new Date();
+        //传出JSON
+        JSONObject result = new JSONObject();
+        //定义集合
+        List<Map<String, Object>> sumlist = new ArrayList<>();
+
+        try {
+
+            //查询IP及账套信息、时间戳
+            QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("code", "senYu_syOrder");
+            Page<DxpDataPlan> page = new Page<DxpDataPlan>(1, 100);
+
+            IPage<DxpDataPlan> pageList = dxpDataPlanService.page(page, queryWrapper);
+            List<DxpDataPlan> resultList = pageList.getRecords();
+            String pkorg = resultList.get(0).getPkOrg();
+            String pkorgSplit[] = pkorg.split(",");
+            Date lastTiem = resultList.get(0).getLastTime();
+            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+            String lastTimeSf = sf.format(lastTiem);
+
+            for (String str : pkorgSplit) {
+                String pkorgStr = str;
+                String pkorgValue[] = pkorgStr.split(":");
+                //得到对应的账套
+                String account = pkorgValue[1];
+
+                /*SO_SODetails SO_SOMain
+                    String sql = "select top 3 ID as id,cSOCode as orderNumber,dDate as orderDate,cBusType as businessTypeValue,cCusCode as customerName," +
+                            "cPersonCode as salesman,cDepCode as salesDepartment,cexch_name as currencyValue,fbookratio as depositRatio," +
+                            "iMoney as deposit,cMemo as memo from SO_SOMain";*/
+
+                String sql = "SELECT " +
+                        "s.ID AS id," +
+                        "s.cSOCode AS orderNumber," +
+                        "s.dDate AS orderDate," +
+                        "s.cBusType AS businessTypeValue," +
+                        "s.cSTCode AS salesTypeValue," +
+                        "s.cCusCode AS customerAbbreviation," +
+                        "s.cCusName AS customerName," +
+                        "s.iExchRate AS exchangeRate," +
+                        "s.cDepCode AS salesDepartment," +
+                        "s.cCrmpersonName AS salesman," +
+                        "s.cexch_name AS currencyText," +
+                        "s.fbookratio AS depositRatio," +
+                        "s.iMoney AS deposit," +
+                        "s.cMemo AS orderRemarks," +
+                        "s.cDefine14 AS orderChangeDescription," +
+                        "s.cDefine12 AS garmentFactory," +
+                        "s.cMemo AS memo," +
+                        "f.chdefine4 as priceRemarks," +
+                        "f.chdefine1 as collaborativeRoute," +
+                        "t.cSTName as salesTypeText," +
+                        "y.cexch_code as currencyValue," +
+                        "p.cPayName as termOfPayment," +account+
+                        " as account" +
+                        " from SO_SOMain s" +
+                        " left join SO_SOMain_extradefine f on s.ID = f.ID" +
+                        " left join SaleType t on s.cSTCode = t.cSTCode" +
+                        " left join foreigncurrency y on s.cexch_name = y.cexch_name" +
+                        " left join PayCondition p on s.cPayCode = p.cPayCode where s.dDate > '"+lastTimeSf+"'";
+
+                List<Map<String, Object>> list = new ArrayList<>();
+                if(pkorgValue[0].equals("one")){
+                    list = senYuDataSourceOne.queryForList(sql);
+                    System.out.println("========================="+list.size());
+                }else if(pkorgValue[0].equals("two")){
+
+                }
+
+
+                for(Map<String, Object> map:list){
+                    sumlist.add(map);
+                }
+            }
+            List<JSONObject> jian = JsonChangeUtils.toJSONObject(sumlist);
+            for (JSONObject jsonObject:jian) {
+                SyOrderData sy = JSONObject.toJavaObject(jsonObject,SyOrderData.class);
+                String ID = sy.getId();
+                String sql = "SELECT " +
+                        "AutoID as id,ID as syOrderDataId,cDefine22 as itemNumber,dPreDate as preDeliveryDate," +
+                        "dPreMoDate as preCompletionDate,cDefine32 as packId,cDefine28 as smallPo,cDefine29 as distributionPoint," +
+                        "cInvCode as inventoryCode,cInvName as inventoryName,cFree1 as colour,cFree2 as size,cFree3 as codingRules," +
+                        "cFree4 as guangpeiGateWidth,cDefine35 as boxNumber,iQuantity as quantity,iQuantity as surplusNum," +
+                        "iTaxUnitPrice as unitPriceIncludingTax,iSum as totalPriceAndTax,iTaxRate as taxRate," +
+                        "cMemo as remarks" +
+                        " FROM SO_SODetails where ID = "+ID;
+
+                List<Map<String, Object>> listSon = new ArrayList<>();
+                if(sy.getAccount().equals("903")){
+                    listSon = senYuDataSourceOne.queryForList(sql);
+                }else if(sy.getAccount().equals("888")){
+
+                }
+                List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(listSon);
+                for (JSONObject Object:jianSon) {
+                    SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class);
+                    syOrderDataItemService.save(sy2);
+                }
+                //添加主表数据进入数据库
+                save(sy);
+            }
+            dxpDataPlanService.updateLastTime(day,"senYu_syOrder");
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+        return result;
+    }
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+
+        this.dxpDataPlanService = applicationContext.getBean(IDxpDataPlanService.class);
+        this.senYuDataSourceOne = applicationContext.getBean(ISenYuDataSourceOne.class);
+        this.syOrderDataItemService = applicationContext.getBean(SyOrderDataItemServiceImpl.class);
 
+    }
 }