|
@@ -4,6 +4,8 @@ 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.apache.poi.ss.formula.functions.T;
|
|
|
+import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.modules.documents.orderData.entity.SyOrderData;
|
|
|
import org.jeecg.modules.documents.orderData.entity.SyOrderDataItem;
|
|
|
import org.jeecg.modules.documents.orderData.entity.SyOrderDataVO;
|
|
@@ -39,7 +41,7 @@ import java.util.Map;
|
|
|
* @Version: V1.0
|
|
|
*/
|
|
|
@Service
|
|
|
-//@Transactional
|
|
|
+//@Transactional //事务导致多数据源失效
|
|
|
public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrderData> implements ISyOrderDataService, ApplicationContextAware {
|
|
|
|
|
|
private static IDxpDataPlanService dxpDataPlanService;
|
|
@@ -53,8 +55,235 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd
|
|
|
private static ISenYuDataSourceThree senYuDataSourceThree;
|
|
|
|
|
|
@Override
|
|
|
- public void doQuerySyOrder() {
|
|
|
- //QuerySyOrder();
|
|
|
+ public Result<T> doQuerySyOrder(String parameter) {
|
|
|
+ Result<T> result =new Result<>();
|
|
|
+ //得到系统时间
|
|
|
+ Date day=new Date();
|
|
|
+ //定义集合
|
|
|
+ List<Map<String, Object>> sumlist = new ArrayList<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ //查找单证是否有当前销售订单 如果有 默认客户进行当前订单的更新操作
|
|
|
+ //更新数据,如为更新数据 删除老数据重新添加新数据
|
|
|
+ String id = syOrderDataMapper.queryIDBYOrderNumber(parameter);
|
|
|
+ if(id!=null){
|
|
|
+ if(id.equals("已被参照")){
|
|
|
+ result.setMessage("销售订单已被参照!!!");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ syOrderDataMapper.deleteByID(id);
|
|
|
+ syOrderDataItemService.deleteByID(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询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(",");
|
|
|
+
|
|
|
+ //查销售订单主表数据
|
|
|
+ for (String str : pkorgSplit) {
|
|
|
+ String pkorgStr = str;
|
|
|
+ String pkorgValue[] = pkorgStr.split(":");
|
|
|
+ //得到对应的账套
|
|
|
+ String account = pkorgValue[1];
|
|
|
+
|
|
|
+ String sql = "SELECT " +
|
|
|
+ "s.ID AS id," +
|
|
|
+ "s.cSOCode AS orderNumber," +
|
|
|
+ "s.dDate AS orderDate," +
|
|
|
+ "s.cBusType AS businessTypeValue," +
|
|
|
+ "s.cSTCode AS salesTypeValue," +
|
|
|
+ "t.cSTName AS salesTypeText," +
|
|
|
+ "cc.cCusAbbName AS customerAbbreviation," +
|
|
|
+ "cc.cCusName AS customerName," +
|
|
|
+ "s.iExchRate AS exchangeRate," +
|
|
|
+ "de.cDepName AS salesDepartment," +
|
|
|
+ "pe.cPersonName AS salesman," +
|
|
|
+ "s.cexch_name AS currencyText," +
|
|
|
+ "s.cdefine2 as brandSide," +
|
|
|
+ "s.cdefine1 as thirdParty," +
|
|
|
+ "s.cdefine3 as customerOrderNumber," +
|
|
|
+ "s.cdefine11 as endCustomer," +
|
|
|
+ "s.cCusCode as customerCode," +
|
|
|
+ "s.fbookratio AS depositRatio," +
|
|
|
+ "s.iMoney AS deposit," +
|
|
|
+ "s.cMemo AS orderRemarks," +
|
|
|
+ "s.cDefine14 AS orderChangeDescription," +
|
|
|
+ "s.cDefine12 AS garmentFactory," +
|
|
|
+ "v.cVenCode AS garmentFactoryCode,"+
|
|
|
+ "s.cDefine5 as garmentNmb," +
|
|
|
+ "s.cMemo AS memo," +
|
|
|
+ "f.chdefine4 AS priceRemarks," +
|
|
|
+ "f.chdefine1 AS collaborativeRoute," +
|
|
|
+ "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" +
|
|
|
+ " LEFT JOIN Department de ON s.cDepCode = de.cDepCode" +
|
|
|
+ " LEFT JOIN Customer cc ON s.cCusCode = cc.cCusCode" +
|
|
|
+ " LEFT JOIN Person pe ON s.cPersonCode = pe.cPersonCode" +
|
|
|
+ " left join Vendor v on s.cDefine12=v.cVenName" +
|
|
|
+ " where s.iStatus = 1 AND (s.cdefine15 is null or s.cdefine15 !='1') "+
|
|
|
+ " and s.cSOCode = '"+parameter+"' order by s.dDate desc ";
|
|
|
+
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ if(pkorgValue[0].equals("one")){
|
|
|
+ list = senYuDataSourceOne.queryForList(sql);
|
|
|
+ }else if(pkorgValue[0].equals("two")){
|
|
|
+ list = senYuDataSourceTwo.queryForList(sql);
|
|
|
+ }else if(pkorgValue[0].equals("three")){
|
|
|
+ list = senYuDataSourceThree.queryForList(sql);
|
|
|
+ }
|
|
|
+
|
|
|
+ for(Map<String, Object> map:list){
|
|
|
+ sumlist.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //没查到销售订单主表数据 返回结果并告知客户
|
|
|
+ if(sumlist.size()<1){
|
|
|
+ result.setMessage("没找到对应销售订单!!!");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ List<JSONObject> jian = JsonChangeUtils.toJSONObject(sumlist);
|
|
|
+ for (JSONObject jsonObject:jian) {
|
|
|
+ SyOrderData sy = JSONObject.toJavaObject(jsonObject,SyOrderData.class);
|
|
|
+ String ID = sy.getId();
|
|
|
+ String sql = "SELECT " +
|
|
|
+ "s.AutoID AS id," +
|
|
|
+ "s.ID AS syOrderDataId," +
|
|
|
+ "s.cDefine22 AS itemNumber," +
|
|
|
+ "s.dPreDate AS preDeliveryDate," +
|
|
|
+ "s.dPreMoDate AS preCompletionDate," +
|
|
|
+ "s.cDefine32 AS packId," +
|
|
|
+ "s.cDefine28 AS smallPo," +
|
|
|
+ "s.cDefine29 AS distributionPoint," +
|
|
|
+ "s.cInvCode AS inventoryCode," +
|
|
|
+ "c.cInvCcode AS inventoryCcode," +
|
|
|
+ "c.cInvName AS inventoryName," +
|
|
|
+ "s.cFree1 AS colour," +
|
|
|
+ "s.cFree2 AS size," +
|
|
|
+ "s.cFree3 AS codingRules," +
|
|
|
+ "s.cFree4 AS guangpeiGateWidth," +
|
|
|
+ "s.cFree6 AS weight,"+
|
|
|
+ "s.cDefine35 AS boxNumber," +
|
|
|
+ "s.iQuantity AS quantity," +
|
|
|
+ "s.iQuantity AS surplusNum," +
|
|
|
+ "s.iTaxUnitPrice AS unitPriceIncludingTax," +
|
|
|
+ "s.iSum AS totalPriceAndTax," +
|
|
|
+ "s.iTaxRate AS taxRate," +
|
|
|
+ "s.cMemo AS remarks ," +
|
|
|
+ "d.cComUnitName as masterMetering," +
|
|
|
+ "c.cInvStd as specificationAndModel," +
|
|
|
+ "case when c.cInvDefine14 is null then 1 else cInvDefine14 end as numberOfSets,"+
|
|
|
+ "s.cSCloser as bankClosedBy," +
|
|
|
+ "be.cbdefine2 as ymoney"+
|
|
|
+ " FROM" +
|
|
|
+ " SO_SODetails s" +
|
|
|
+ " left join Inventory c on c.cInvCode=s.cInvCode" +
|
|
|
+ " left join ComputationUnit d on d.cComunitCode=c.cComUnitCode"+
|
|
|
+ " left join SO_SODetails_extradefine be on be.iSOsID=s.iSOsID"+
|
|
|
+ " where s.ID = "+ID;
|
|
|
+ List<Map<String, Object>> listSon = new ArrayList<>();
|
|
|
+ if(sy.getAccount().equals("901")){
|
|
|
+ listSon = senYuDataSourceOne.queryForList(sql);
|
|
|
+ }else if(sy.getAccount().equals("902")){
|
|
|
+ listSon = senYuDataSourceTwo.queryForList(sql);
|
|
|
+ }else if(sy.getAccount().equals("903")){
|
|
|
+ listSon = senYuDataSourceThree.queryForList(sql);
|
|
|
+ }
|
|
|
+ List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(listSon);
|
|
|
+ int size = 0;
|
|
|
+ for (JSONObject Object:jianSon) {
|
|
|
+ SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class);
|
|
|
+ sy2.setId(sy.getAccount()+sy2.getId());
|
|
|
+ sy2.setSyOrderDataId(sy.getAccount()+sy2.getSyOrderDataId());
|
|
|
+ SyOrderDataVO ordervo = queryOrder(sy2.getId());
|
|
|
+ if(ordervo != null){
|
|
|
+ sy2.setOmpoAccount(ordervo.getOmpoAccount());
|
|
|
+ sy2.setOmpoCode(ordervo.getOmpoCode());
|
|
|
+ sy2.setOmpoId(ordervo.getOmpoId());
|
|
|
+ sy2.setDArriveDate(ordervo.getDArriveDate());
|
|
|
+ sy2.setOmpoIdItem(ordervo.getOmpoIdItem());
|
|
|
+ sy2.setITaxPrice(ordervo.getITaxPrice());
|
|
|
+ if(sy2.getGuangpeiGateWidth()==null||sy2.getGuangpeiGateWidth().equals("/")||sy2.getGuangpeiGateWidth().equals("")){
|
|
|
+ sy2.setGuangpeiGateWidth(ordervo.getGuangpeiGateWidth());
|
|
|
+ }
|
|
|
+ sy2.setSupplier(ordervo.getSupplier());
|
|
|
+ if(sy2.getInventoryCcode().substring(0,2).equals("09")){
|
|
|
+ sy2.setGarmentFactory(ordervo.getSupplier());
|
|
|
+ }else if(sy.getCustomerAbbreviation().equals("森语集团") || sy.getCustomerAbbreviation().equals("宁波森语") ) {
|
|
|
+ sy2.setGarmentFactory(queryGSupplier(sy.getOrderNumber(),sy.getAccount(),sy.getCustomerCode()));
|
|
|
+ }else {
|
|
|
+ sy2.setGarmentFactory(sy.getGarmentFactory());
|
|
|
+ }
|
|
|
+ sy2.setSupplierCode(ordervo.getSupplierCode());
|
|
|
+ }else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(sy2.getOmpoIdItem()==null || sy2.getOmpoIdItem().equals("")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(sy2.getOmpoIdItem()!=null && sy.getAccount()!=null){
|
|
|
+ List<String> rsup = queryRSupplier(sy2.getOmpoIdItem(),sy.getAccount());
|
|
|
+ if(rsup.size()>0){
|
|
|
+ sy2.setRSupplierCode(rsup.get(0));
|
|
|
+ sy2.setRSupplier(rsup.get(1));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ syOrderDataItemService.save(sy2);
|
|
|
+ size++;
|
|
|
+ }
|
|
|
+ //添加单证id 原数据账套+原数据id
|
|
|
+ String syId = sy.getId();
|
|
|
+ sy.setId(sy.getAccount()+sy.getId());
|
|
|
+
|
|
|
+ if(size<=0){
|
|
|
+ //回写不拉取的数据状态 0
|
|
|
+ String blackWrite = "UPDATE SO_SOMain SET cdefine15 = '0' WHERE id='"+syId+"'";
|
|
|
+ if(sy.getAccount().equals("901")){
|
|
|
+ senYuDataSourceOne.update(blackWrite);
|
|
|
+ }else if(sy.getAccount().equals("902")){
|
|
|
+ senYuDataSourceTwo.update(blackWrite);
|
|
|
+ }else if(sy.getAccount().equals("903")){
|
|
|
+ senYuDataSourceThree.update(blackWrite);
|
|
|
+ }
|
|
|
+ //进入下一个主表的添加,这里是单个订单同步 所以是返回同步失败且通知原因
|
|
|
+ //continue;
|
|
|
+ result.setMessage("同步失败,销售订单不符合同步需求!!!");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ //添加主表数据进入数据库
|
|
|
+ save(sy);
|
|
|
+ //回写拉取的数据状态 1
|
|
|
+ String blackWrite = "UPDATE SO_SOMain SET cdefine15 = '1' WHERE id='"+syId+"'";
|
|
|
+ if(sy.getAccount().equals("901")){
|
|
|
+ senYuDataSourceOne.update(blackWrite);
|
|
|
+ }else if(sy.getAccount().equals("902")){
|
|
|
+ senYuDataSourceTwo.update(blackWrite);
|
|
|
+ }else if(sy.getAccount().equals("903")){
|
|
|
+ senYuDataSourceThree.update(blackWrite);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dxpDataPlanService.updateLastTime(day,"senYu_syOrder");
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.print("jian:更新失败");
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
+ result.setMessage("同步失败!请联系管理员!!!");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ result.setMessage("同步成功!!!");
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -72,6 +301,266 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd
|
|
|
return syOrderDataMapper.queryIDBYOrderNumber(orderNumber);
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * 查询成衣工厂 (面辅料供应商编码 面辅料供应商名称)
|
|
|
+ * */
|
|
|
+ public String queryGSupplier(String soCode,String zhangtao,String customerCode){
|
|
|
+ /*
|
|
|
+ 查询账套用于判断
|
|
|
+ */
|
|
|
+ QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("code", "senYu_syOrder");
|
|
|
+ List<DxpDataPlan> pageList = dxpDataPlanService.list(queryWrapper);
|
|
|
+ String pkorg = pageList.get(0).getPkOrg();
|
|
|
+ String pkorgSplit[] = pkorg.split(",");
|
|
|
+ //定义账套集合
|
|
|
+ String account[] = new String[3];
|
|
|
+ int index = 0;
|
|
|
+ //得到对应的账套
|
|
|
+ for (String str : pkorgSplit) {
|
|
|
+ String pkorgValue[] = str.split(":");
|
|
|
+ account[index] = pkorgValue[1];
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ String resql = " select max(ss.cSOCode) as soCode from PO_Podetails t " +
|
|
|
+ " left join PO_Pomain m on m.poid=t.poid " +
|
|
|
+ " left join SO_SODetails s on s.isosid=t.iorderdid " +
|
|
|
+ " left join SO_SOMain ss on ss.id=s.id " +
|
|
|
+ " where m.cpoid = '"+soCode+"'";
|
|
|
+
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ if(zhangtao.equals(account[2]) && customerCode.equals("T020001")){
|
|
|
+ list = senYuDataSourceThree.queryForList(resql);
|
|
|
+ List<JSONObject> jSONObject = JsonChangeUtils.toJSONObject(list);
|
|
|
+ if(jSONObject.size()>0){
|
|
|
+ for (JSONObject json:jSONObject) {
|
|
|
+ soCode = json.get("soCode").toString();
|
|
|
+ zhangtao = account[0];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String sql = "SELECT max(v.cVenName) as cVenName from OM_MOMain m right join OM_MODetails t on m.moid = t.moid " +
|
|
|
+ " left join Vendor v on m.cVenCode=v.cVenCode " +
|
|
|
+ " where t.isosid=( select max(s.isosid) from PO_Podetails t " +
|
|
|
+ " left join PO_Pomain m on m.poid=t.poid " +
|
|
|
+ " left join SO_SODetails s on s.isosid=t.iorderdid " +
|
|
|
+ " where m.cpoid = '"+soCode+"') ";
|
|
|
+
|
|
|
+ if(zhangtao.equals(account[0])){
|
|
|
+ list = senYuDataSourceOne.queryForList(sql);
|
|
|
+ }
|
|
|
+ List<JSONObject> jSONObject = JsonChangeUtils.toJSONObject(list);
|
|
|
+ String result = "";
|
|
|
+ if(jSONObject.size()>0){
|
|
|
+ for (JSONObject json:jSONObject) {
|
|
|
+ result=json.get("cVenName").toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 查询染厂供应商编码 供应商名称
|
|
|
+ * */
|
|
|
+ public List<String> queryRSupplier(String id,String zhangtao){
|
|
|
+ /*
|
|
|
+ 查询账套用于判断
|
|
|
+ */
|
|
|
+ QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("code", "senYu_syOrder");
|
|
|
+ List<DxpDataPlan> pageList = dxpDataPlanService.list(queryWrapper);
|
|
|
+ String pkorg = pageList.get(0).getPkOrg();
|
|
|
+ String pkorgSplit[] = pkorg.split(",");
|
|
|
+ //定义账套集合
|
|
|
+ String account[] = new String[3];
|
|
|
+ int index = 0;
|
|
|
+ //得到对应的账套
|
|
|
+ for (String str : pkorgSplit) {
|
|
|
+ String pkorgValue[] = str.split(":");
|
|
|
+ account[index] = pkorgValue[1];
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ String sql = "select om.cVenCode as cVenCode,v.cVenName as cVenName From OM_MODetails o " +
|
|
|
+ "join ( " +
|
|
|
+ " select ommos.isosid,ommom.cInvCode from " +
|
|
|
+ " OM_MODetails ommos " +
|
|
|
+ "left join OM_MOMaterials ommom on ommom.MoDetailsID=ommos.MODetailsID " +
|
|
|
+ "where ommos.MODetailsID = '"+id+"' " +
|
|
|
+ ")tab on tab.isosid=o.isosid and tab.cInvCode =o.cInvCode " +
|
|
|
+ "left join OM_MOMain om on om.moid=o.moid " +
|
|
|
+ "LEFT JOIN Vendor v ON om.cVenCode=v.cVenCode " +
|
|
|
+ "union " +
|
|
|
+ "select om.cVenCode as cVenCode,v.cVenName as cVenName From PO_Podetails o " +
|
|
|
+ "join ( " +
|
|
|
+ " select ommos.isosid,ommom.cInvCode from " +
|
|
|
+ " OM_MODetails ommos " +
|
|
|
+ "left join OM_MOMaterials ommom on ommom.MoDetailsID=ommos.MODetailsID " +
|
|
|
+ "where ommos.MODetailsID = '"+id+"' " +
|
|
|
+ ")tab on tab.isosid=o.isosid and tab.cInvCode =o.cInvCode " +
|
|
|
+ "left join PO_Pomain om on om.POID=o.POID " +
|
|
|
+ "LEFT JOIN Vendor v ON om.cVenCode=v.cVenCode";
|
|
|
+
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ if(zhangtao.equals(account[0])){
|
|
|
+ list = senYuDataSourceOne.queryForList(sql);
|
|
|
+ }else if(zhangtao.equals(account[1])){
|
|
|
+ list = senYuDataSourceTwo.queryForList(sql);
|
|
|
+ }else if(zhangtao.equals(account[2])){
|
|
|
+ list = senYuDataSourceThree.queryForList(sql);
|
|
|
+ }
|
|
|
+ List<JSONObject> jSONObject = JsonChangeUtils.toJSONObject(list);
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ if(jSONObject.size()>0){
|
|
|
+ for (JSONObject json:jSONObject) {
|
|
|
+ result.add(json.get("cVenCode").toString());
|
|
|
+ result.add(json.get("cVenName").toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询最终供应商数据
|
|
|
+ */
|
|
|
+ public SyOrderDataVO queryOrder(String orderItemID) throws Exception{
|
|
|
+ SyOrderDataVO syOrderDataVO = new SyOrderDataVO();
|
|
|
+ syOrderDataVO.setId(orderItemID);
|
|
|
+ List<Map<String, Object>> listSon = new ArrayList<>();
|
|
|
+ SyOrderDataVO result = new SyOrderDataVO();
|
|
|
+ /*
|
|
|
+ 查询账套用于判断
|
|
|
+ */
|
|
|
+ QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("code", "senYu_syOrder");
|
|
|
+ List<DxpDataPlan> pageList = dxpDataPlanService.list(queryWrapper);
|
|
|
+ String pkorg = pageList.get(0).getPkOrg();
|
|
|
+ String pkorgSplit[] = pkorg.split(",");
|
|
|
+ //定义账套集合
|
|
|
+ String account[] = new String[4];
|
|
|
+ int index = 0;
|
|
|
+ //得到对应的账套
|
|
|
+ for (String str : pkorgSplit) {
|
|
|
+ String pkorgValue[] = str.split(":");
|
|
|
+ account[index] = pkorgValue[1];
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 对应账套取对应的值
|
|
|
+ */
|
|
|
+ if(account[0].equals(syOrderDataVO.getAccount())){
|
|
|
+ String sql = " SELECT" +
|
|
|
+ " ompoCode,ompoIdItem,ompoId,supplierCode,v.cVenAbbName as supplier,iTaxPrice,dArriveDate,guangpeiGateWidth," +account[0]+" as ompoAccount"+
|
|
|
+ " FROM" +
|
|
|
+ " SO_SODetails s" +
|
|
|
+ " left join (" +
|
|
|
+ " SELECT om.cCode as ompoCode,om.MOID as ompoId,od.MODetailsID as ompoIdItem," +
|
|
|
+ " od.cDefine23 as guangpeiGateWidth,od.dArriveDate,"+
|
|
|
+ " om.cVenCode as supplierCode,od.iTaxPrice,od.cInvCode,od.isosid" +
|
|
|
+ " FROM OM_MOMain om" +
|
|
|
+ " LEFT JOIN OM_MODetails od on om.MOID =od.MOID" +
|
|
|
+ " where om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')" +
|
|
|
+ ") p on s.isosid = p.isosid and s.cInvCode = p.cInvCode" +
|
|
|
+ " left join Vendor v on p.supplierCode=v.cVenCode" +
|
|
|
+ " where s.autoid ="+syOrderDataVO.getId();
|
|
|
+ listSon = senYuDataSourceOne.queryForList(sql);
|
|
|
+ List<JSONObject> jian = JsonChangeUtils.toJSONObject(listSon);
|
|
|
+ for (JSONObject jsonObject:jian) {
|
|
|
+ result = JSONObject.toJavaObject(jsonObject, SyOrderDataVO.class);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }else if(account[1].equals(syOrderDataVO.getAccount())){
|
|
|
+ String sql = "SELECT" +
|
|
|
+ " ompoCode,ompoIdItem,ompoId,supplierCode,v.cVenAbbName as supplier,iTaxPrice,guangpeiGateWidth,dArriveDate,s.iRowNo as poIrowno," +account[1]+" as ompoAccount"+
|
|
|
+ " FROM" +
|
|
|
+ " SO_SODetails s" +
|
|
|
+ " left join (" +
|
|
|
+ " SELECT pm.cPOID as ompoCode,pm.POID as ompoId,pd.id as ompoIdItem,pd.irowno as poIrowno,"+
|
|
|
+ " pd.cDefine23 as guangpeiGateWidth,pd.dArriveDate,"+
|
|
|
+ " pm.cVenCode as supplierCode,pd.iTaxPrice,pd.cInvCode,pd.iorderdid as isosid" +
|
|
|
+ " FROM PO_Pomain pm" +
|
|
|
+ " LEFT JOIN PO_Podetails pd on pm.POID=pd.POID" +
|
|
|
+ " where pm.iverifystateex = 2 and (pm.cCloser is null or pm.cCloser='asuser')" +
|
|
|
+ ") p on s.isosid = p.isosid and s.cInvCode = p.cInvCode" +
|
|
|
+ " left join Vendor v on p.supplierCode=v.cVenCode"+
|
|
|
+ " where s.autoid ="+syOrderDataVO.getId();
|
|
|
+ List<Map<String, Object>> list = senYuDataSourceTwo.queryForList(sql);
|
|
|
+ List<JSONObject> jian = JsonChangeUtils.toJSONObject(list);
|
|
|
+ for (JSONObject jsonObject:jian) {
|
|
|
+ syOrderDataVO = JSONObject.toJavaObject(jsonObject, SyOrderDataVO.class);
|
|
|
+ }
|
|
|
+ if(syOrderDataVO.getSupplier()==null){
|
|
|
+ return syOrderDataVO;
|
|
|
+ }
|
|
|
+ if(!syOrderDataVO.getSupplier().equals("马菲羊")){
|
|
|
+ return syOrderDataVO;
|
|
|
+ }
|
|
|
+ String sql2 = "SELECT" +
|
|
|
+ " ompoCode,ompoIdItem,ompoId,supplierCode,v.cVenAbbName as supplier,iTaxPrice,dArriveDate,guangpeiGateWidth," +account[2]+" as ompoAccount"+
|
|
|
+ " FROM" +
|
|
|
+ " so_somain ss " +
|
|
|
+ " join SO_SODetails s on s.id=ss.id" +
|
|
|
+ " left join (" +
|
|
|
+ " SELECT pm.cPOID as ompoCode,pm.POID as ompoId,pd.id as ompoIdItem," +
|
|
|
+ " pd.cDefine23 as guangpeiGateWidth,pd.dArriveDate,"+
|
|
|
+ " pm.cVenCode as supplierCode,pd.iTaxPrice,pd.cInvCode,pd.iorderdid as isosid" +
|
|
|
+ " FROM PO_Pomain pm" +
|
|
|
+ " LEFT JOIN PO_Podetails pd on pm.POID=pd.POID" +
|
|
|
+ " where pm.iverifystateex = 2 and (pm.cCloser is null or pm.cCloser='asuser')" +
|
|
|
+ " UNION" +
|
|
|
+ " SELECT om.cCode as ompoCode,om.MOID as ompoId,od.MODetailsID as ompoIdItem," +
|
|
|
+ " od.cDefine23 as guangpeiGateWidth,od.dArriveDate,"+
|
|
|
+ " om.cVenCode as supplierCode,od.iTaxPrice,od.cInvCode,od.isosid" +
|
|
|
+ " FROM OM_MOMain om" +
|
|
|
+ " LEFT JOIN OM_MODetails od on om.MOID =od.MOID" +
|
|
|
+ " where om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')" +
|
|
|
+ " ) p on s.isosid = p.isosid and s.cInvCode = p.cInvCode" +
|
|
|
+ " left join Vendor v on p.supplierCode=v.cVenCode"+
|
|
|
+ " where s.iRowNo ="+syOrderDataVO.getPoIrowno() +" and ss.cSOCode='"+syOrderDataVO.getOmpoCode()+"'";
|
|
|
+ listSon = senYuDataSourceThree.queryForList(sql2);
|
|
|
+ List<JSONObject> jian2 = JsonChangeUtils.toJSONObject(listSon);
|
|
|
+ for (JSONObject jsonObject:jian2) {
|
|
|
+ result = JSONObject.toJavaObject(jsonObject, SyOrderDataVO.class);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }else if(account[2].equals(syOrderDataVO.getAccount())){
|
|
|
+ String sql = "SELECT" +
|
|
|
+ " ompoCode,ompoIdItem,ompoId,supplierCode,v.cVenAbbName as supplier,iTaxPrice,dArriveDate,guangpeiGateWidth," +account[2]+" as ompoAccount"+
|
|
|
+ " FROM" +
|
|
|
+ " SO_SODetails s" +
|
|
|
+ " left join (" +
|
|
|
+ " SELECT pm.cPOID as ompoCode,pm.POID as ompoId,pd.id as ompoIdItem," +
|
|
|
+ " pd.cDefine23 as guangpeiGateWidth,pd.dArriveDate,"+
|
|
|
+ " pm.cVenCode as supplierCode,pd.iTaxPrice,pd.cInvCode,pd.iorderdid as isosid" +
|
|
|
+ " FROM PO_Pomain pm" +
|
|
|
+ " LEFT JOIN PO_Podetails pd on pm.POID=pd.POID" +
|
|
|
+ " where pm.iverifystateex = 2 and (pm.cCloser is null or pm.cCloser='asuser')" +
|
|
|
+ " UNION" +
|
|
|
+ " SELECT om.cCode as ompoCode,om.MOID as ompoId,od.MODetailsID as ompoIdItem," +
|
|
|
+ " od.cDefine23 as guangpeiGateWidth,od.dArriveDate,"+
|
|
|
+ " om.cVenCode as supplierCode,od.iTaxPrice,od.cInvCode,od.isosid" +
|
|
|
+ " FROM OM_MOMain om" +
|
|
|
+ " LEFT JOIN OM_MODetails od on om.MOID =od.MOID" +
|
|
|
+ " where om.iVerifyStateNew = 2 and (om.cCloser is null or om.cCloser='asuser')" +
|
|
|
+ ") p on s.isosid = p.isosid and s.cInvCode = p.cInvCode" +
|
|
|
+ " left join Vendor v on p.supplierCode=v.cVenCode"+
|
|
|
+ " where s.autoid ="+syOrderDataVO.getId();
|
|
|
+ listSon = senYuDataSourceThree.queryForList(sql);
|
|
|
+ List<JSONObject> jian = JsonChangeUtils.toJSONObject(listSon);
|
|
|
+ for (JSONObject jsonObject:jian) {
|
|
|
+ result = JSONObject.toJavaObject(jsonObject, SyOrderDataVO.class);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
|
|