fs-danaus
2023-02-20 e3c243716a4c164b94f9dccc10b6494e939038c6
wms无锡新接口
1个文件已添加
13个文件已修改
464 ■■■■ 已修改文件
src/com/yc/action/grid/GTGrid.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/deli/controller/DeliController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/deli/schedule/v2/DeliThread.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/deli/service/v2/DeLiIfc.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/deli/service/v2/DeLiImplV2.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/controller/WMSController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/entity/WuXiWmsAPI.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/schedule/BaseThread.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/schedule/SalesThread.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/schedule/T130301Thread.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/schedule/WMSSchedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/schedule/WMSThread.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/service/WMSServiceIfc.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/wms/service/WMSServiceImpl.java 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/action/grid/GTGrid.java
@@ -607,6 +607,7 @@
                            ("wms_test".equalsIgnoreCase(dataSourceMap.getDb())
                                    ||"KeLe_SuZhou".equalsIgnoreCase(dataSourceMap.getDb())
                                    ||"OuDeLi_TianJin".equalsIgnoreCase(dataSourceMap.getDb())
                                    ||"JinWu_WuXi".equalsIgnoreCase(dataSourceMap.getDb())
                            )
                    ) {
                        wmsController.proccessCancelProc(dbid, Integer.parseInt(formidByCanel), info.getDoccode(), resp);
@@ -5994,7 +5995,7 @@
                String[] values=names[1].trim().replaceAll("^'","").replaceAll("'$","").split("\\s+");
                for(String val:values) {
                    if(org.apache.commons.lang3.StringUtils.isNotBlank(val)) {
                        joiner.add("("+names[0].trim()+" like "+op+val+op+")");
                        joiner.add("("+names[0].trim()+" like "+op+"%"+val+"%"+op+")");
                    }
                }
            }
src/com/yc/open/deli/controller/DeliController.java
@@ -156,7 +156,8 @@
                }
                mPostDataBaseService.doLogBy110565(new T110565Entity(640115, "", "", "接收非标申请设计图纸数据", data));
                Map<String, Object> results = delifV2.do640115(post640115Entity);
                Map<String, Object> results = delifV2.do640115(post640115Entity,dbid+"");
                log.info("results:"+JSON.toJSONString(results));
                return callBackMessageToObject.setData(results).sendSuccessMessage("接收成功");
            }else{
                throw new ApplicationException("data内容为空");
src/com/yc/open/deli/schedule/v2/DeliThread.java
@@ -41,7 +41,7 @@
        } catch (Exception ex) {
            ex.printStackTrace();
            BaseController baseController = (BaseController) FactoryBean.getBean("baseController");
            baseController.sendErrorLog(entity.getFormid(), entity.getDocCode(),ex);
            baseController.sendErrorLog(entity.getFormid(), (entity.getDocCode()==null?"":entity.getDocCode()),ex);
        }finally {
            SpObserver.setDBtoInstance();
        }
src/com/yc/open/deli/service/v2/DeLiIfc.java
@@ -78,7 +78,7 @@
    T640115Entity getT640115(String docCode, Task task,String dbid);
    Get640115Entity getT640115V2(GateEntity entity, Task task);
    Map<String, Object> do640115(Post640115Entity post640115Entity);
    Map<String, Object> do640115(Post640115Entity post640115Entity,String dbid);
    String doCancel(DeliCancelEntity cancel);
src/com/yc/open/deli/service/v2/DeLiImplV2.java
@@ -9,6 +9,7 @@
import com.yc.multiData.SpObserver;
import com.yc.open.deli.entity.*;
import com.yc.open.deli.service.PostDataBaseService;
import com.yc.open.init.InitSystemTaks;
import com.yc.open.init.Task;
import com.yc.open.mutual.entity.AttachmentEntity;
import com.yc.open.deli.entity.OrderReturnEntity;
@@ -835,69 +836,63 @@
    @Override
    @Transactional
    public Map<String, Object> do640115(Post640115Entity post640115Entity) {
    public Map<String, Object> do640115(Post640115Entity post640115Entity,String dbid) {
        Map<String, Object> stringObjectMap=null;
        String docStatus=null;
        if (post640115Entity != null) {
            String sql = " set nocount on \n " +
                    " declare @Memo varchar(2000) ,@LinkDocInfo varchar(20), @UserCode varchar(50),@UserName varchar(50)\n" +
                    " declare @MatCode varchar(50),@MatName varchar(80),@uom varchar(50),@digit money,@itemMemo varchar(200),@brand varchar(50)=null,@Deli_id varchar(50)," +
                    " declare @MatCode varchar(50),@MatName varchar(80),@uom varchar(50),@digit money,@itemMemo varchar(200),@brand varchar(50)=null,@Deli_id varchar(50)="+GridUtils.prossSqlParm(post640115Entity.getId())+"," +
                    " @special varchar(80),@rowid varchar(20),@docitem int = 0,@soDocCode varchar(50),@soFormId int," +
                    " @soRowid varchar(50),@fromDocCode varchar(50),@fromFormId int,@fromRowId varchar(50),@attachment varchar(150)="+GridUtils.prossSqlParm(post640115Entity.getAttachment())+",@DocType varchar(10), \n" +
                    " @soRowid varchar(50),@fromRowId varchar(50),@attachment varchar(150)="+GridUtils.prossSqlParm(post640115Entity.getAttachment())+",@DocType varchar(10), \n" +
                    "    @docCode varchar(50)  = " + GridUtils.prossSqlParm(post640115Entity.getDocCode()) + ", \n" +
                    "   @formid int = " + post640115Entity.getFormid() + ",\n" +
                    "   @cshopCode varchar(50) = " + GridUtils.prossSqlParm(post640115Entity.getCshopCode()) + ", \n" +
                    "   @postCode varchar(50) = " + GridUtils.prossSqlParm(post640115Entity.getPostCode()) + ", \n" +
                    "   @postName varchar(50)  =  " + GridUtils.prossSqlParm(post640115Entity.getPostName()) + ", \n" +
                    "   @postDate varchar(50) =  " + GridUtils.prossSqlParm(post640115Entity.getPostDate()) + ", \n" +
                    "   @fromFormId  int =  " + post640115Entity.getFromFormId() + ", \n" +
                    "   @fromDocCode varchar(50) =  " + GridUtils.prossSqlParm(post640115Entity.getFromDocCode()) + ", \n" +
                    "   @preDocStatus int , \n" +
                    "   @postDocStatus int,@postFormId int,@DocStatusValue int,@DefaultVndCode varchar(50),@DefaultVndName varchar(50) \n";
            if (StringUtils.isNotBlank(post640115Entity.getDocCode())) {
                //--取OP0067设置的审核状态值
                GateEntity gateEntity = new GateEntity();
                gateEntity.setFormid(post640115Entity.getFormid());
                gateEntity.setDbid(dbid);
                Task op0067 = InitSystemTaks.getTask(gateEntity, "OP0067");
                if(StringUtils.isNotBlank(op0067.getAffectedDocStatus())){
                    docStatus=op0067.getAffectedDocStatus().split(";")[0].split("_")[0];
                }else{
                    throw new ApplicationException("查找不到编号【OP0067】API配置或该配置未启用");
                }
                //有单号,把设计图纸加到表头附件及更新id值到明细表
                sql += " update a set a.attachment=@attachment  from t640115H a where  a.doccode=@docCode \n"+
                            " update a set a.Deli_id=" + GridUtils.prossSqlParm(post640115Entity.getId())+ " from t640115D a where  a.doccode=@docCode and a.fromFormId="+post640115Entity.getFromFormId()+" and a.fromDocCode="+GridUtils.prossSqlParm(post640115Entity.getFromDocCode())+"and a.fromRowId="+GridUtils.prossSqlParm(post640115Entity.getFromRowId())+"\n";
                            " update a set a.Deli_id=@Deli_id from t640115D a where  a.doccode=@docCode and a.fromFormId=@fromFormId and a.fromDocCode=@fromDocCode and a.fromRowId="+GridUtils.prossSqlParm(post640115Entity.getFromRowId())+"\n"+
                         "  exec p640115Save @doccode\n" +
                         "    exec p640115Post @UserCode = @postCode,@UserName = @postName, \n" +
                         "       @DocCode = @docCode,@FormId = 640115,@DocStatusValue = "+docStatus+
                         "  ,@ButtonType ='通过', \n" +
                         "       @Memo=@Memo output ,@LinkDocInfo = @LinkDocInfo output   \n" +
                         " select @docCode as docCode,@deli_id as id";
            } else {
                //没单号,表示是跟单员提交的非标申请,需要新增
                    sql += " exec sp_newdoccode @formid ,'' ,@doccode output  \n";
                       //--表头
                        sql += " select @DocType = initValue from gfield where formid = 640115 and fieldid = 'DocType'\n" +
                                "insert into t640115H( DocCode ,FormID,DocDate,DocType,  \n" +
                                " refCode,refformid,CompanyID,CompanyName,SellerCode,SellerName,ShopGuideCode,ShopGuideName,  \n" +
                                " CltCode,CltName,DocStatus,entercode,EnterName,EnterDate,ModifyName,ModifyDate,  \n" +
                                " HDMemo,ShejiCode,ShejiName,\n" +
                                " ccCode,ccName, ----部门 \n" +
                                " Tel,Tel2,\t----客户电话\n" +
                                " PropertyAddress,attachment)\n" +
                                "  select @doccode,@formid,convert(datetime,convert(varchar(10),GETDATE(),120) ) ,@DocType,   \n" +
                                " doccode,formid,CompanyID,CompanyName,SellerCode,SellerName,ShopGuideCode,ShopGuideName,  \n" +
                                " CltCode,CltName,0,@postCode,@PostName,getdate(),@UserName,getdate(),  \n" +
                                " HDMemo,neibushejicode,neibushejiname,\n" +
                                " ccCode,ccName,Tel,Tel2,\n" +
                                "  PropertyAddress,@attachment\n" +
                                "from t120201H   --销售订单  \n" +
                                "where doccode = " + GridUtils.prossSqlParm(post640115Entity.getSoDocCode());
                    //--明细表
                    sql += " exec GetXXXX @rowid output\n" +
                            "\tselect @docitem=ISNULL(@docitem,0)+10\n" +
                            " select @soDocCode=" + GridUtils.prossSqlParm(post640115Entity.getSoDocCode()) + ",@soFormId=" + post640115Entity.getSoFormId() + ",@soRowid=" + GridUtils.prossSqlParm(post640115Entity.getSoRowid()) + ",@fromDocCode=" + GridUtils.prossSqlParm(post640115Entity.getFromDocCode()) + ",@fromFormId=" + post640115Entity.getFromFormId() + ",@fromRowid=" + GridUtils.prossSqlParm(post640115Entity.getFromRowId()) + ",@Deli_id='" + post640115Entity.getId() +"' \n"+
                            " insert into t640115D (Doccode,rowid,docitem,refcodeitem,refrowid,refcodeformid,matcode,matname,brand,special,uom,Digit,ItemMemo,\n" +
                            " soDocCode,soFormId,soRowid,fromDocCode,fromFormId,fromRowid,Deli_id)\n" +
                            " select @doccode,@rowid,@docitem,@fromDocCode,@fromRowid,@fromFormId,matcode,matname,brand,special,uom,digit,@ItemMemo,@soDocCode,@soFormId,@soRowid,@fromDocCode,@fromFormId,@fromRowid,@Deli_id from t120201D where doccode= " + GridUtils.prossSqlParm(post640115Entity.getSoDocCode())+" and rowid="+GridUtils.prossSqlParm(post640115Entity.getSoRowid());
                        sql+=" exec p120274 @doccodes=@fromDocCode,@formids=@fromFormId, @usercodes=@postCode,@usernames=@postName,@newdoccode=@doccode output,@attachment=@attachment,@Deli_id=@Deli_id,@itemMemo=@ItemMemo,@Memo=@Memo output ,@LinkDocInfo = @LinkDocInfo output\n" +
                                "  exec p640115Save @doccode\n" +
                                " select @PostFormId = FormId,@DocStatusValue = DocStatus from t640115H where docCode=@docCode\n" +
                                " select @PreDocStatus = PreDocStatus,@PostDocStatus = a.PostDocStatus from gform a where a.formid = @PostFormId \n" +
                                " if isnull(@DocStatusValue,0) = isnull(@PreDocStatus,0)\n" +
                                " begin \n" +
                                "    update a set DocStatus = @PostDocStatus,PostCode=@postCode,PostName=@postName,PostDate=@postDate\n" +
                                "    from t640115H a where a.DocCode = @docCode \n" +
                                "    exec p640115Post @UserCode = @postCode,@UserName = @postName, \n" +
                                "       @DocCode = @docCode,@FormId = @PostFormId,@DocStatusValue = @DocStatusValue"+
                                "  ,@ButtonType ='提交', \n" +
                                "       @Memo=@Memo output ,@LinkDocInfo = @LinkDocInfo output   \n" +
                                " end\n" +
                                "select @docCode as docCode,@Deli_id as id";
            }
            sql += "  exec p640115Save @doccode\n" +
                    " select @PostFormId = FormId,@DocStatusValue = DocStatus from t640115H where docCode=@docCode\n" +
                    " select @PreDocStatus = PreDocStatus,@PostDocStatus = a.PostDocStatus from gform a where a.formid = @PostFormId \n" +
                    " if isnull(@DocStatusValue,0) = isnull(@PreDocStatus,0)\n" +
                    " begin \n" +
                    "    update a set DocStatus = @PostDocStatus,PostCode=@postCode,PostName=@postName,PostDate=@postDate\n" +
                    "    from t640115H a where a.DocCode = @docCode \n" +
                    "    exec p640115Post @UserCode = @postCode,@UserName = @postName, \n" +
                    "       @DocCode = @docCode,@FormId = @PostFormId,\n" +
                    "       @DocStatusValue = @DocStatusValue,@ButtonType ='提交', \n" +
                    "       @Memo=@Memo output ,@LinkDocInfo = @LinkDocInfo output   \n" +
                    " end\n" +
                    " select @docCode as docCode,@deli_id as id";
            log.info("p640115Save:"+sql);
             stringObjectMap = this.jdbcTemplate.queryForMap(sql);
        }
        return stringObjectMap;
src/com/yc/open/wms/controller/WMSController.java
@@ -345,6 +345,7 @@
            pushEntity.setType(5);
            pushEntity.setDocCode(docCode);
            pushEntity.setDbId(dataSourceEntity.getDbId() + "");
            final APIConfig apiConfig = BaseThread.getAPIConfig(dataSourceEntity.getDbId() + "");
            SalesXMLEntity salesData = null;
            switch (pushEntity.getFormId()) {
                case 140206:
@@ -356,12 +357,16 @@
                case 140204:
                    salesData = wmsServiceIfc.getData140204(pushEntity);
                    break;
                case 140202:
                    if(apiConfig instanceof WuXiWmsAPI) {
                        salesData = wmsServiceIfc.getData140202(pushEntity);
                    }
                    break;
                default:
                    salesData = wmsServiceIfc.getSalesData(pushEntity);
                    break;
            }
            if (salesData != null) {
                final APIConfig apiConfig = BaseThread.getAPIConfig(dataSourceEntity.getDbId() + "");
                salesData.getDeliveryOrder().setWarehouseCode(apiConfig.warehouseCode);
                String data = BaseThread.createXmlData(salesData);
                log.info(data);
@@ -442,10 +447,17 @@
            pushEntity.setDocCode(docCode);
            pushEntity.setDbId(dataSourceEntity.getDbId() + "");
            Order130301XMLEntity salesData = null;
            final APIConfig apiConfig = BaseThread.getAPIConfig(dataSourceEntity.getDbId() + "");
            if (pushEntity.getFormId() == 130301) {
                salesData = wmsServiceIfc.getData130301(pushEntity);
            } else if (pushEntity.getFormId() == 140104) {
                salesData = wmsServiceIfc.getData140104(pushEntity);
            }else if (pushEntity.getFormId() == 140102) {
                if(apiConfig instanceof WuXiWmsAPI) {
                    //无锡的才执行
                    salesData = wmsServiceIfc.getData140102(pushEntity);
                }
            } else if (pushEntity.getFormId() == 140107) {
                salesData = wmsServiceIfc.getData140107(pushEntity);
@@ -454,7 +466,7 @@
                salesData = wmsServiceIfc.getData140315And140130(pushEntity);
            }
            if (salesData != null) {
                final APIConfig apiConfig = BaseThread.getAPIConfig(dataSourceEntity.getDbId() + "");
                salesData.getEntryOrder().setWarehouseCode(apiConfig.warehouseCode);
                String data = BaseThread.createXmlData(salesData);
                log.info(data);
src/com/yc/open/wms/entity/WuXiWmsAPI.java
New file
@@ -0,0 +1,26 @@
package com.yc.open.wms.entity;
public class WuXiWmsAPI extends APIConfig{
    public WuXiWmsAPI() {
         //--140107,140206手动推送
         PUSH_Total_LIST =",120301,140204,130301,140104,140202,140102,";
         CANEL_TOTAL_LIST =",120301,140204,130301,140104,140107,140206,140202,140102,";
         //120301,140204 出库
         PUSH_SALES_LIST =",120301,140204,140202,";
         //130301,140101 入库
         PUSH_130301_LIST =",130301,140104,140102,";
        //--测试环境
         //PUSH_URL="http://106.15.237.140/iWMSOpenAPI/router";
         PUSH_URL="http://106.15.237.140/iWMSOpenAPITest/router";
         APP_KEY="d0fb003c80d0c3ee8ec6d5f77a23dc9b";
         CUSTOMERID="Rongya3";
         SECRET="7AY1NPQrmvLm108Kq1TXfOFHCvcluQYt";
         OWNERCODE="WXJW";
         warehouseCode="B";
    }
}
src/com/yc/open/wms/schedule/BaseThread.java
@@ -65,6 +65,8 @@
            apiConfig = new JinWuTestWmsAPI();
        } else if ("OuDeLi_TianJin".equalsIgnoreCase(dataSourceMap.getDb())) {
            apiConfig = new OuDeLiTianJinWmsAPI();
        }else if ("JinWu_WuXi".equalsIgnoreCase(dataSourceMap.getDb())) {
            apiConfig = new WuXiWmsAPI();
        }
        return apiConfig;
    }
src/com/yc/open/wms/schedule/SalesThread.java
@@ -46,6 +46,9 @@
                case 140204:
                    salesData = wmsServiceIfc.getData140204(pushEntity);
                    break;
                case 140202:
                    salesData = wmsServiceIfc.getData140202(pushEntity);
                    break;
                default:
                    salesData = wmsServiceIfc.getSalesData(pushEntity);
                    break;
src/com/yc/open/wms/schedule/T130301Thread.java
@@ -39,10 +39,10 @@
                salesData = wmsServiceIfc.getData140104(pushEntity);
            }
//            else if(pushEntity.getFormId()==140107) {
//                salesData = wmsServiceIfc.getData140107(pushEntity);
//
//            }
            else if(pushEntity.getFormId()==140102) {
                salesData = wmsServiceIfc.getData140102(pushEntity);
            }
            else{
                salesData = wmsServiceIfc.getData140315And140130(pushEntity);
            }
src/com/yc/open/wms/schedule/WMSSchedule.java
@@ -34,7 +34,7 @@
    public void pushData(PushEntity pushEntity) {
        final APIConfig apiConfig = BaseThread.getAPIConfig(pushEntity.getDbId());
        if (apiConfig.PUSH_SALES_LIST.contains("," + pushEntity.getFormId() + ",")) {
            //开单
            //开单 出库
            threadPoolExecutor.execute(new SalesThread(pushEntity, threadPoolExecutor, wmsServiceIfc, baseController));
        } else if (apiConfig.PUSH_130301_LIST.contains("," + pushEntity.getFormId() + ",")) {
            //入库
src/com/yc/open/wms/schedule/WMSThread.java
@@ -38,7 +38,7 @@
     * @return
     */
    private boolean isStorePass(int formId) {
        return (formId == 140130 || formId == 140104 || formId == 140223 || formId == 140204
        return (formId == 140130 || formId == 140104 || formId == 140223 || formId == 140204|| formId == 140202|| formId == 140102
                // ||formId==140107||formId==140206||formId==140240
        ) ? true : false;
    }
@@ -59,6 +59,7 @@
                    ("596".equalsIgnoreCase(dbId)
                            || "jinwu".equalsIgnoreCase(dataSourceMap.getSystemAccessKey())
                            || "tjoudeli.onbus.cn".equalsIgnoreCase(dataSourceMap.getSystemAccessKey())
                            || "wxjinwu.onbus.cn".equalsIgnoreCase(dataSourceMap.getSystemAccessKey())
                    )
                            //金屋系统才调用
                            //TODO 测试环境指定dbid进行测试
src/com/yc/open/wms/service/WMSServiceIfc.java
@@ -2,7 +2,6 @@
import com.yc.open.jinwu.entity.T110562Entity;
import com.yc.open.jinwu.entity.T110565Entity;
import com.yc.open.jinwu.service.JinWuBaseServiceIfc;
import com.yc.open.mutual.entity.*;
import com.yc.open.wms.entity.*;
import com.yc.open.wms.entity.T140201Entity;
@@ -85,4 +84,8 @@
    SalesXMLEntity getData140204(PushEntity pushEntity);
    Sales120380XMLEntity getData120380(PushEntity pushEntity);
    SalesXMLEntity getData140202(PushEntity pushEntity);
    Order130301XMLEntity getData140102(PushEntity pushEntity);
}
src/com/yc/open/wms/service/WMSServiceImpl.java
@@ -731,6 +731,177 @@
        return salesXMLEntity;
    }
    @Override
    public SalesXMLEntity getData140202(PushEntity pushEntity) {
        OrderEntity orderEntity = getOrderType(pushEntity.getFormId());
        if (orderEntity == null) {
            throw new ApplicationException(pushEntity.getFormId() + "-不是正确的开单类型");
        }
        String hsql = "  set nocount on " +
                "  declare @docCode varchar(20)=?,@EnterDate datetime,@PreSendDate datetime ,@ExpressCompany varchar(150)," +
                "  @ShippingMethod varchar(50),@IsMoveFloor varchar(10),@isDeliveryDoor varchar(10),@isInsuredPrice varchar(10),@InsuredPrice money,@CompanyName varchar(50),@ccname varchar(50)," +
                "   @EnterName varchar(50),@HDMemo varchar(250),@ReceivingName varchar(50),@vndcode varchar(50)," +
                "   @vndName varchar(50),@objCode varchar(50),@objName varchar(50),@LinkMan varchar(50)," +
                "   @cltCode varchar(50),@cltName varchar(50),@PropertyAddress varchar(150)," +
                "   @ReceivingTel varchar(50),@tel varchar(50),@areaid varchar(50),@areaname varchar(50)," +
                "   @ProvinceName varchar(50),@cityName varchar(50),@DistrictName varchar(50)," +
                "   @rowid varchar(50),@MatCode varchar(50),@cv1 varchar(50),@cv2 varchar(50)," +
                "   @digit money,@stCode varchar(50),@stName varchar(50),@itemMemo varchar(150)," +
                "   @DocItem int,@docStatus int,@FormId int=?,@postdocstatus int,@squareNum money,@refCode varchar(50),@special varchar(50) \n" +
                "  declare @table table(\n" +
                "  docCode varchar(20),EnterDate datetime,PreSendDate datetime ,ExpressCompany varchar(150)," +
                "  ShippingMethod varchar(50),IsMoveFloor varchar(10),isDeliveryDoor varchar(10),isInsuredPrice varchar(10),InsuredPrice money,CompanyName varchar(50),ccname varchar(50)," +
                "   EnterName varchar(50),HDMemo varchar(250),ReceivingName varchar(50),vndcode varchar(50)," +
                "   vndName varchar(50),objCode varchar(50),objName varchar(50),LinkMan varchar(50)," +
                "   cltCode varchar(50),cltName varchar(50),PropertyAddress varchar(150)," +
                "   ReceivingTel varchar(50),tel varchar(50),areaid varchar(50),areaname varchar(50)," +
                "   ProvinceName varchar(50),cityName varchar(50),DistrictName varchar(50)," +
                "   rowid varchar(50),MatCode varchar(50),cv1 varchar(50),cv2 varchar(50)," +
                "   digit money,stCode varchar(50),stName varchar(50),itemMemo varchar(150)," +
                "   DocItem int,squareNum money,refCode varchar(50),special varchar(50))" +
                " declare mycurDeli cursor for\n" +
                " select \n" +
                "   a.docCode ,a.EnterDate   ,a.entername,\n" +
                "                   a.ShippingMethod ,a.CompanyName ,a.ccname ,\n" +
                "                   a.HDMemo ,a.ReceivingName  ,a.refCode,\n" +
                "                   a.cltCode ,a.cltName ,a.PropertyAddress,\n" +
                "                   a.ReceivingTel  ,a.areaname ,\n" +
                "                   a.ProvinceName ,a.cityName ,a.DistrictName ,\n" +
                "                   b.rowid ,b.MatCode ,b.cv1 ,b.cv2 ,b.special,\n" +
                "                   b.digit ,b.stCode ,b.stName ,b.itemMemo, b.DocItem \n" +
                " from " + orderEntity.getHDtable() + " a join " + orderEntity.getDDtable() + " b on a.DocCode  = b.DocCode\n" +
                " join t110503 d on  d.matCode= b.matCode\n" +
                " where \n" +
                "  isnull(a.PushStatus,0)=0  \n" +
                " and  d.MatType <>'虚拟' \n" +
                //" and  a.DocStatus=60 \n"+
                " and  a.docCode=@docCode \n" +
                " order by a.doccode asc,b.DocItem asc \n" +
                " open mycurDeli \n" +
                " fetch next from mycurDeli into \n" +
                "  @docCode,@EnterDate ,@entername,\n" +
                "                   @ShippingMethod ,@CompanyName ,@ccname ,\n" +
                "                   @HDMemo ,@ReceivingName  ,@refCode,\n" +
                "                   @cltCode ,@cltName ,@PropertyAddress,\n" +
                "                   @ReceivingTel  ,@areaname ,\n" +
                "                   @ProvinceName ,@cityName ,@DistrictName ,\n" +
                "                   @rowid ,@MatCode ,@cv1 ,@cv2 ,@special,\n" +
                "                   @digit ,@stCode ,@stName ,@itemMemo, \n" +
                " @DocItem \n" +
                " while @@FETCH_STATUS = 0 \n" +
                " begin\n" +
                "  insert into @table( \n" +
                " docCode,EnterDate ,entername,\n" +
                "                   ShippingMethod ,CompanyName ,ccname ,\n" +
                "                   HDMemo ,ReceivingName  ,refCode,\n" +
                "                   cltCode ,cltName ,PropertyAddress,\n" +
                "                   ReceivingTel  ,areaname ,\n" +
                "                   ProvinceName ,cityName ,DistrictName ,\n" +
                "                   rowid ,MatCode ,cv1 ,cv2 ,special,\n" +
                "                   digit ,stCode ,stName ,itemMemo, \n" +
                " DocItem " +
                "  ) \n" +
                "  values( \n" +
                "  @docCode,@EnterDate ,@entername,\n" +
                "                   @ShippingMethod ,@CompanyName ,@ccname ,\n" +
                "                   @HDMemo ,@ReceivingName  ,@refCode,\n" +
                "                   @cltCode ,@cltName ,@PropertyAddress,\n" +
                "                   @ReceivingTel  ,@areaname ,\n" +
                "                   @ProvinceName ,@cityName ,@DistrictName ,\n" +
                "                   @rowid ,@MatCode ,@cv1 ,@cv2 ,@special,\n" +
                "                   @digit ,@stCode ,@stName ,@itemMemo, \n" +
                " @DocItem " +
                "  )\n" +
                "  fetch next from mycurDeli into \n" +
                " @docCode,@EnterDate ,@entername,\n" +
                "                   @ShippingMethod ,@CompanyName ,@ccname ,\n" +
                "                   @HDMemo ,@ReceivingName  ,@refCode,\n" +
                "                   @cltCode ,@cltName ,@PropertyAddress,\n" +
                "                   @ReceivingTel  ,@areaname ,\n" +
                "                   @ProvinceName ,@cityName ,@DistrictName ,\n" +
                "                   @rowid ,@MatCode ,@cv1 ,@cv2 ,@special,\n" +
                "                   @digit ,@stCode ,@stName ,@itemMemo, \n" +
                "   @DocItem " +
                " end \n" +
                " close mycurDeli\n" +
                " deallocate mycurDeli \n" +
                " select  \n" +
                "  docCode,EnterDate ,entername,\n" +
                "                   ShippingMethod ,CompanyName ,ccname ,\n" +
                "                   HDMemo ,ReceivingName  ,refCode,\n" +
                "                   cltCode ,cltName ,PropertyAddress,\n" +
                "                   ReceivingTel  ,areaname ,\n" +
                "                   ProvinceName ,cityName ,DistrictName ,\n" +
                "                   rowid ,MatCode ,cv1 ,cv2 ,special,\n" +
                "                   digit ,stCode ,stName ,itemMemo, \n" +
                " DocItem " +
                " from @table ";
        log.info("140202sql:"+hsql);
        SalesXMLEntity salesXMLEntity = null;
        List<Map<String, Object>> list = this.jdbcTemplate.queryForList(hsql, pushEntity.getDocCode(), pushEntity.getFormId());
        if (list != null && list.size() > 0) {
            salesXMLEntity = new SalesXMLEntity();
            //取主表数据
            Map headMap = list.get(0);
            DeliveryOrder deliveryOrder = new DeliveryOrder();
            deliveryOrder.setDeliveryOrderCode(GridUtils.prossRowSetDataType_String(headMap, "docCode"));
            final APIConfig apiConfig = BaseThread.getAPIConfig(pushEntity.getDbId());
            deliveryOrder.setOwnerCode(apiConfig.OWNERCODE);
            deliveryOrder.setCreateTime(DateUtil.formatDate(GridUtils.prossRowSetDataType_String(headMap, "EnterDate"), "yyyy-MM-dd HH:mm:ss"));
            deliveryOrder.setOrderType(orderEntity.getType());
            deliveryOrder.setTransportMode(GridUtils.prossRowSetDataType_String(headMap, "ShippingMethod"));
            deliveryOrder.setRemark(GridUtils.prossRowSetDataType_String(headMap, "HDMemo"));
            ReceiverInfo receiverInfo = new ReceiverInfo();
            receiverInfo.setArea(GridUtils.prossRowSetDataType_String(headMap, "DistrictName"));
            receiverInfo.setProvince(GridUtils.prossRowSetDataType_String(headMap, "ProvinceName"));
            receiverInfo.setCity(GridUtils.prossRowSetDataType_String(headMap, "cityName"));
            receiverInfo.setDetailAddress(GridUtils.prossRowSetDataType_String(headMap, "PropertyAddress"));
            receiverInfo.setMobile(GridUtils.prossRowSetDataType_String(headMap, "ReceivingTel"));
            receiverInfo.setTel(GridUtils.prossRowSetDataType_String(headMap, "ReceivingTel"));
            receiverInfo.setName(GridUtils.prossRowSetDataType_String(headMap, "ReceivingName"));
            deliveryOrder.setReceiverInfo(receiverInfo);
            salesXMLEntity.setDeliveryOrder(deliveryOrder);
            ExtendProps extendProps = new ExtendProps();
            extendProps.setCustomerCode(GridUtils.prossRowSetDataType_String(headMap, "CltCode"));
            extendProps.setRegistrant(GridUtils.prossRowSetDataType_String(headMap, "entername"));
            extendProps.setCustomerName(GridUtils.prossRowSetDataType_String(headMap, "CltName"));
            salesXMLEntity.setExtendProps(extendProps);
//--明细
            List<SalesDetailEntity> detailEntityList = new ArrayList<>();
            for (Map<String, Object> map : list) {
                SalesDetailEntity salesDetailEntity = new SalesDetailEntity();
                salesDetailEntity.setOrderLineNo(GridUtils.prossRowSetDataType_String(map, "rowid"));
                salesDetailEntity.setItemCode(GridUtils.prossRowSetDataType_String(map, "matCode"));
                salesDetailEntity.setPlanQty(GridUtils.prossRowSetDataType_Double(map, "digit"));
                salesDetailEntity.setRemarks(GridUtils.prossRowSetDataType_String(map, "ItemMemo")+"-"+
                        GridUtils.prossRowSetDataType_String(map, "special"));
                salesDetailEntity.setRefRowid(GridUtils.prossRowSetDataType_String(map, "rowid"));
                salesDetailEntity.setRefCodeItem(GridUtils.prossRowSetDataType_String(map, "docCode"));
                salesDetailEntity.setRefCodeFormId(pushEntity.getFormId());
                DetailExtendProps detailExtendProps = new DetailExtendProps();
                detailExtendProps.setCv1(GridUtils.prossRowSetDataType_String(map, "cv1"));
                detailExtendProps.setCv2(GridUtils.prossRowSetDataType_String(map, "cv2"));
                detailExtendProps.setWarehouseCode(GridUtils.prossRowSetDataType_String(map, "stCode"));
                detailExtendProps.setWarehouseName(GridUtils.prossRowSetDataType_String(map, "stName"));
                detailExtendProps.setSquareNum(GridUtils.prossRowSetDataType_Double(map, "digit"));
                salesDetailEntity.setExtendProps(detailExtendProps);
                detailEntityList.add(salesDetailEntity);
            }
            salesXMLEntity.setOrderLines(detailEntityList);
        }
        return salesXMLEntity;
    }
    @Override
    public SalesXMLEntity getData140204(PushEntity pushEntity) {
        OrderEntity orderEntity = getOrderType(pushEntity.getFormId());
        if (orderEntity == null) {
@@ -1025,6 +1196,141 @@
        return salesXMLEntity;
    }
    @Override
    public Order130301XMLEntity getData140102(PushEntity pushEntity) {
        OrderEntity orderEntity = getOrderType(pushEntity.getFormId());
        if (orderEntity == null) {
            throw new ApplicationException(pushEntity.getFormId() + "-不是正确的开单类型");
        }
        //TODO 做三个方法取数
        //1:140104
        //2:130301
        //3:140315,140130,140107
        String hsql = "  set nocount on " +
                //--定义全部变量
                "  declare @docCode varchar(20)=?,@GCDoccode varchar(50),@DocDate datetime ,@ExpressCompany varchar(150)," +
                "  @ShippingMethod varchar(50),@IsMoveFloor varchar(10),@isDeliveryDoor varchar(10),@isInsuredPrice varchar(10),@InsuredPrice money,@CompanyName varchar(50),@ccname varchar(50)," +
                "   @EnterName varchar(50),@HDMemo varchar(250),@ReceivingName varchar(50),@vndcode varchar(50)," +
                "   @vndName varchar(50),@objCode varchar(50),@objName varchar(50),@LinkMan varchar(50)," +
                "   @cltCode varchar(50),@cltName varchar(50),@PropertyAddress varchar(150)," +
                "   @ReceivingTel varchar(50),@tel varchar(50),@areaid varchar(50),@areaname varchar(50)," +
                "   @ProvinceName varchar(50),@cityName varchar(50),@DistrictName varchar(50)," +
                "   @rowid varchar(50),@MatCode varchar(50),@cv1 varchar(50),@cv2 varchar(50)," +
                "   @digit money,@stCode varchar(50),@stName varchar(50),@itemMemo varchar(150)," +
                "   @DocItem int,@docStatus int,@FormId int=?,@postdocstatus int,@reasonname varchar(200)\n" +
//--130301用到
                "  declare @table table(\n" +
                "  docCode varchar(20),GCDoccode varchar(50),DocDate datetime ,reasonname varchar(200),CompanyName varchar(50),ccname varchar(50)," +
                "   EnterName varchar(50),HDMemo varchar(250),vndcode varchar(50)," +
                "   vndName varchar(50),objCode varchar(50),objName varchar(50),LinkMan varchar(50)," +
                "   cltCode varchar(50),cltName varchar(50),PropertyAddress varchar(150)," +
                "   ReceivingTel varchar(50),tel varchar(50)," +
                "   rowid varchar(50),MatCode varchar(50),cv1 varchar(50),cv2 varchar(50)," +
                "   digit money,stCode varchar(50),stName varchar(50),itemMemo varchar(150)," +
                "   DocItem int,reason varchar(100),TuiHuoType varchar(50))" +
                " select @postdocstatus = postdocstatus from gform where formid = @FormId \n" +
                " declare mycurDeli cursor for\n" +
                " select \n" +
                "   a.docCode  ,a.DocDate  ,CompanyName ,ccname ,reasonname,\n" +
                " a.EnterName ,HDMemo ,\n" +
                " rowid ,b.MatCode ,b.cv1 ,b.cv2 ,\n" +
                " digit ,b.stCode ,b.stName ,itemMemo, DocItem " +
                " from " + orderEntity.getHDtable() + " a \n" +
                " join " + orderEntity.getDDtable() + " b on a.DocCode  = b.DocCode\n" +
                " join t110503 e on  e.matCode= b.matCode\n" +
                " where \n" +
                "  isnull(a.PushStatus,0)=0  \n" +
                " and  e.MatType <>'虚拟' \n" +
                " and  a.DocStatus=60 \n" +
                " and  a.docCode=@docCode \n" +
                //" and not((b.stcode   in('B','O')) or (a.cccode='O' and (b.stcode in('K','L','P') and isnull(a.isReturnwarehouse,0)=0))) \n" +
                " order by a.doccode asc,b.DocItem asc \n" +
                " open mycurDeli \n" +
                " fetch next from mycurDeli into \n" +
                "  @docCode  ,@DocDate  ,@CompanyName ,@ccname ,@reasonname,\n" +
                "    @EnterName ,@HDMemo ,\n" +
                "    @rowid ,@MatCode ,@cv1 ,@cv2 ,\n" +
                "    @digit ,@stCode ,@stName ,@itemMemo, @DocItem " +
                " while @@FETCH_STATUS = 0 \n" +
                " begin\n" +
                "  insert into @table( \n" +
                "  docCode  ,DocDate  ,CompanyName ,ccname ,reasonname,\n" +
                " EnterName ,HDMemo ,\n" +
                " rowid ,MatCode ,cv1 ,cv2 ,\n" +
                " digit ,stCode ,stName ,itemMemo, DocItem "+
                "  ) \n" +
                "  values( \n" +
                "  @docCode  ,@DocDate  ,@CompanyName ,@ccname ,@reasonname,\n" +
                "    @EnterName ,@HDMemo ,\n" +
                "    @rowid ,@MatCode ,@cv1 ,@cv2 ,\n" +
                "    @digit ,@stCode ,@stName ,@itemMemo, @DocItem " +
                "  )\n" +
                " fetch next from mycurDeli into \n" +
                "  @docCode  ,@DocDate  ,@CompanyName ,@ccname ,@reasonname,\n" +
                "    @EnterName ,@HDMemo ,\n" +
                "    @rowid ,@MatCode ,@cv1 ,@cv2 ,\n" +
                "    @digit ,@stCode ,@stName ,@itemMemo, @DocItem " +
                " end \n" +
                " close mycurDeli\n" +
                " deallocate mycurDeli \n" +
                " select  \n" +
                "  docCode  ,DocDate  ,CompanyName ,ccname ,reasonname,\n" +
                " EnterName ,HDMemo ,\n" +
                " rowid ,MatCode ,cv1 ,cv2 ,\n" +
                " digit ,stCode ,stName ,itemMemo, DocItem " +
                " from @table ";
        log.info("140102sql:"+hsql);
        Order130301XMLEntity salesXMLEntity = null;
        List<Map<String, Object>> list = this.jdbcTemplate.queryForList(hsql, pushEntity.getDocCode(), pushEntity.getFormId());
        if (list != null && list.size() > 0) {
            salesXMLEntity = new Order130301XMLEntity();
            //取主表数据
            Map headMap = list.get(0);
            EntryOrder deliveryOrder = new EntryOrder();
            deliveryOrder.setEntryOrderCode(GridUtils.prossRowSetDataType_String(headMap, "docCode"));
            final APIConfig apiConfig = BaseThread.getAPIConfig(pushEntity.getDbId());
            deliveryOrder.setOwnerCode(apiConfig.OWNERCODE);
            deliveryOrder.setOrderCreateTime(DateUtil.formatDateTime(GridUtils.prossRowSetDataType_String(headMap, "DocDate"), "yyyy-MM-dd HH:mm:ss"));
            deliveryOrder.setOrderType(orderEntity.getType());
            deliveryOrder.setRemark(GridUtils.prossRowSetDataType_String(headMap, "HDMemo"));
            deliveryOrder.setOperatorCode(GridUtils.prossRowSetDataType_String(headMap, "EnterName"));
            salesXMLEntity.setEntryOrder(deliveryOrder);
            OrderExtendProps extendProps = new OrderExtendProps();
            extendProps.setCompany(GridUtils.prossRowSetDataType_String(headMap, "CompanyName"));
            extendProps.setDepartment(GridUtils.prossRowSetDataType_String(headMap, "ccname"));
            extendProps.setReturnReason(GridUtils.prossRowSetDataType_String(headMap, "reasonname"));
            salesXMLEntity.setExtendProps(extendProps);
//--明细
            List<SalesDetailEntity> detailEntityList = new ArrayList<>();
            for (Map<String, Object> map : list) {
                SalesDetailEntity salesDetailEntity = new SalesDetailEntity();
                salesDetailEntity.setOrderLineNo(GridUtils.prossRowSetDataType_String(map, "rowid"));
                salesDetailEntity.setItemCode(GridUtils.prossRowSetDataType_String(map, "matCode"));
                salesDetailEntity.setPlanQty(GridUtils.prossRowSetDataType_Double(map, "digit"));
                salesDetailEntity.setRemarks(GridUtils.prossRowSetDataType_String(map, "ItemMemo"));
                salesDetailEntity.setRefRowid(GridUtils.prossRowSetDataType_String(map, "rowid"));
                salesDetailEntity.setRefCodeItem(GridUtils.prossRowSetDataType_String(map, "docCode"));
                salesDetailEntity.setRefCodeFormId(pushEntity.getFormId());
                DetailExtendProps detailExtendProps = new DetailExtendProps();
                detailExtendProps.setCv1(GridUtils.prossRowSetDataType_String(map, "cv1"));
                detailExtendProps.setCv2(GridUtils.prossRowSetDataType_String(map, "cv2"));
                detailExtendProps.setWarehouseCode(GridUtils.prossRowSetDataType_String(map, "stCode"));
                detailExtendProps.setWarehouseName(GridUtils.prossRowSetDataType_String(map, "stName"));
                //detailExtendProps.setSquareNum(GridUtils.prossRowSetDataType_Double(map, "digit"));
                salesDetailEntity.setExtendProps(detailExtendProps);
                detailEntityList.add(salesDetailEntity);
            }
            salesXMLEntity.setOrderLines(detailEntityList);
        }
        return salesXMLEntity;
    }
    @Override
    public Order130301XMLEntity getData140104(PushEntity pushEntity) {