diff --git a/service/src/main/java/com/hzya/frame/Jackyun/goodsdocin/entity/GoodsdocInEntity.xml b/service/src/main/java/com/hzya/frame/Jackyun/goodsdocin/entity/GoodsdocInEntity.xml index 85716647..ea01b60f 100644 --- a/service/src/main/java/com/hzya/frame/Jackyun/goodsdocin/entity/GoodsdocInEntity.xml +++ b/service/src/main/java/com/hzya/frame/Jackyun/goodsdocin/entity/GoodsdocInEntity.xml @@ -195,8 +195,9 @@ select * from kjs_external.dbo.v_hzya_other_receipt_details - - where cLink = #{cLink} and AccId = #{AccId} + + + + + insert into kjs_external.dbo.other_receipt_details_log( + [id],[AccId],[AccCode],[cinvcode],[cinvname],[iquantity],[cdlcode],[inum],[iAmount_f],[cLink]) + values( + #{logId},#{AccId},#{AccCode},#{cinvcode},#{cinvname},#{iquantity},#{cdlcode},#{inum},#{iAmount_f},#{cLink}) + diff --git a/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.java b/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.java index fcdc1d83..6200b18a 100644 --- a/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.java +++ b/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.java @@ -23,6 +23,7 @@ public class OtherReceiptEntity extends BaseEntity { private String cLink; private String state; private String cDigest; + private String orderType; public String getcDigest() { return cDigest; @@ -96,6 +97,14 @@ public class OtherReceiptEntity extends BaseEntity { this.syncFlag = syncFlag; } + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + private ListOtherReceiptDetailEntity; public List getOtherReceiptDetailEntity() { diff --git a/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.xml b/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.xml index 3b4617ed..808ea28f 100644 --- a/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.xml +++ b/service/src/main/java/com/hzya/frame/u8/otherreceipt/entity/OtherReceiptEntity.xml @@ -2,6 +2,7 @@ + @@ -10,6 +11,7 @@ + @@ -28,4 +30,15 @@ where cLink = #{cLink} + + update ${AccCode}.dbo.Ap_Vouch set modify_flag_time = getdate() + where cLink = #{cLink} + + + + insert into kjs_external.dbo.other_receipt_log( + [AccId],[AccCode],[ids],[cLink],[cvouchid],[cCusCode],[sync_flag],[cDigest],[orderType]) + values (#{AccId},#{AccCode},#{ids},#{cLink},#{cvouchid},#{cCusCode},#{syncFlag},#{cDigest},#{orderType}) + + diff --git a/service/src/main/java/com/hzya/frame/u8/otherreceipt/service/impl/OtherReceiptServiceImpl.java b/service/src/main/java/com/hzya/frame/u8/otherreceipt/service/impl/OtherReceiptServiceImpl.java index 9941cf5a..8a8b7f69 100644 --- a/service/src/main/java/com/hzya/frame/u8/otherreceipt/service/impl/OtherReceiptServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/u8/otherreceipt/service/impl/OtherReceiptServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -78,9 +79,17 @@ public class OtherReceiptServiceImpl extends BaseService lineList = otherReceiptDetailDao.getU8OtherReceipt(line); + List lineList = new ArrayList<>(); + if (sale.getOrderType() == null || sale.getOrderType().equals("正常")){ + lineList = otherReceiptDetailDao.getU8OtherReceipt(line); + }else{ + lineList = otherReceiptDetailDao.getU8OtherReceiptElse(line); + } logger.info("其他应收单明细查询数据{}",JSONObject.toJSONString(lineList)); sale.setOtherReceiptDetailEntity(lineList); logger.info("组装数据"); @@ -115,6 +124,28 @@ public class OtherReceiptServiceImpl extends BaseService { + try { + saleDetail.setDataSourceCode(requestJson.getString("db_code")); + saleDetail.setLogId(Integer.parseInt(sale.getId())); + otherReceiptDetailDao.insertU8Log(saleDetail); + } catch (Exception e) { + logger.error("保存写入u8明细日志失败" + e.getMessage()); + e.printStackTrace(); + } + }); + } + }catch (Exception e){ + logger.error("保存写入u8日志失败"+e.getMessage()); + e.printStackTrace(); + } } } catch (Exception e) { logger.error("其他应收单执行失败"+e.getMessage()); diff --git a/service/src/main/java/com/hzya/frame/u8/receipt/dao/IReceiptDao.java b/service/src/main/java/com/hzya/frame/u8/receipt/dao/IReceiptDao.java index d0175d05..41385951 100644 --- a/service/src/main/java/com/hzya/frame/u8/receipt/dao/IReceiptDao.java +++ b/service/src/main/java/com/hzya/frame/u8/receipt/dao/IReceiptDao.java @@ -1,6 +1,7 @@ package com.hzya.frame.u8.receipt.dao; import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.u8.otherreceipt.entity.OtherReceiptEntity; import com.hzya.frame.u8.receipt.entity.ReceiptEntity; import java.util.List; @@ -34,4 +35,8 @@ public interface IReceiptDao extends IBaseDao { */ int updateState(ReceiptEntity sale); + + int modifyState(ReceiptEntity sale); + + int insertLog(ReceiptEntity entity); } diff --git a/service/src/main/java/com/hzya/frame/u8/receipt/dao/impl/ReceiptDaoImpl.java b/service/src/main/java/com/hzya/frame/u8/receipt/dao/impl/ReceiptDaoImpl.java index 268a12e7..5cf03b22 100644 --- a/service/src/main/java/com/hzya/frame/u8/receipt/dao/impl/ReceiptDaoImpl.java +++ b/service/src/main/java/com/hzya/frame/u8/receipt/dao/impl/ReceiptDaoImpl.java @@ -2,6 +2,7 @@ package com.hzya.frame.u8.receipt.dao.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.u8.otherreceipt.entity.OtherReceiptEntity; import com.hzya.frame.u8.receipt.dao.IReceiptDao; import com.hzya.frame.u8.receipt.entity.ReceiptEntity; import org.springframework.stereotype.Repository; @@ -28,4 +29,16 @@ public class ReceiptDaoImpl extends MybatisGenericDao impl public int updateState(ReceiptEntity entity) { return super.update("com.hzya.frame.u8.receipt.dao.impl.ReceiptDaoImpl.entity_update",entity); } + + @DS("#entity.dataSourceCode") + @Override + public int modifyState(ReceiptEntity entity) { + return super.update("com.hzya.frame.u8.receipt.dao.impl.ReceiptDaoImpl.entity_modify",entity); + } + + @DS("#entity.dataSourceCode") + @Override + public int insertLog(ReceiptEntity entity) { + return super.insert("com.hzya.frame.u8.receipt.dao.impl.ReceiptDaoImpl.entity_insert_log", entity); + } } diff --git a/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.java b/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.java index 826cd5bf..5d32b43f 100644 --- a/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.java +++ b/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.java @@ -25,6 +25,8 @@ public class ReceiptEntity extends BaseEntity { private String state;//状态 private String AccCode;//账套编码 private String ids;// + private String cDigest; + private String orderType; public String getIds() { return ids; @@ -123,4 +125,20 @@ public class ReceiptEntity extends BaseEntity { public void setState(String state) { this.state = state; } + + public String getcDigest() { + return cDigest; + } + + public void setcDigest(String cDigest) { + this.cDigest = cDigest; + } + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } } diff --git a/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.xml b/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.xml index 9b85fb0d..1fe9c2d0 100644 --- a/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.xml +++ b/service/src/main/java/com/hzya/frame/u8/receipt/entity/ReceiptEntity.xml @@ -14,6 +14,8 @@ + + @@ -32,4 +34,18 @@ update ${AccCode}.dbo.Ap_CloseBill set sync_flag = #{state} where iID = #{iID} + + + + update ${AccCode}.dbo.Ap_CloseBill set modify_flag_time = getdate() + where iID = #{iID} + + + + insert into kjs_external.dbo.receipt_log( + [AccId],[AccCode],[iID],[ids],[cvouchid],[dvouchdate],[ccuscode],[ccusname],[iamount_f] + ,[csscode],[sync_flag],[cDigest],[orderType]) + values (#{AccId},#{AccCode},#{iID},#{ids},#{cvouchid},#{dvouchdate},#{ccuscode},#{ccusname},#{iamount_f}, + #{csscode},#{syncFlag},#{cDigest},#{orderType}) + diff --git a/service/src/main/java/com/hzya/frame/u8/receipt/service/impl/ReceiptServiceImpl.java b/service/src/main/java/com/hzya/frame/u8/receipt/service/impl/ReceiptServiceImpl.java index 12e88e3d..8a73bb0e 100644 --- a/service/src/main/java/com/hzya/frame/u8/receipt/service/impl/ReceiptServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/u8/receipt/service/impl/ReceiptServiceImpl.java @@ -101,6 +101,18 @@ public class ReceiptServiceImpl extends BaseService implem sale.setState("N"); } sale.setDataSourceCode(requestJson.getString("db_code")); + // 日志写入u8扩展库 + try{ + if (sale.getState().equals("Y")) { + if (sale.getOrderType().equals("修改")){ + saleOutDao.modifyState(sale); + } + saleOutDao.insertLog(sale); + } + }catch (Exception e){ + logger.error("保存写入u8日志失败"+e.getMessage()); + e.printStackTrace(); + } try{ saveLog(interId, logDetails, flag); }catch (Exception e){ @@ -169,6 +181,7 @@ public class ReceiptServiceImpl extends BaseService implem head.put("iamount_f",sale.getIamount_f()); head.put("csscode",sale.getCsscode()); head.put("syncFlag",sale.getSyncFlag()); + head.put("cDigest",sale.getcDigest()); main.put("head",head); return main; } diff --git a/service/src/main/java/com/hzya/frame/u8/saleout/service/impl/SaleOutServiceImpl.java b/service/src/main/java/com/hzya/frame/u8/saleout/service/impl/SaleOutServiceImpl.java index 9efc9847..a540cfdf 100644 --- a/service/src/main/java/com/hzya/frame/u8/saleout/service/impl/SaleOutServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/u8/saleout/service/impl/SaleOutServiceImpl.java @@ -309,7 +309,7 @@ public class SaleOutServiceImpl extends BaseService implem //发货退货单主表@ //发货退货单主表 String sqlSelDisList = "select DLID as 'dlid',DLID as 'cdlcode' ,cDLCode as 'cbuscode' ,cDepCode as 'cdepcode' ,cPersonCode as 'cpersoncode' ,cCusCode as 'ccuscode'," + - "cCusCode as 'cinvoicecompany',cSTCode as 'cstcode ,'32' as 'cvouchtype' ,'普通销售' as 'cbustype' ,'发货单' as 'csource' ,GETDATE() as 'ddate' ,'form WMS' as 'cmemo'," + + "cCusCode as 'cinvoicecompany',cSTCode as 'cstcode' ,'32' as 'cvouchtype' ,'普通销售' as 'cbustype' ,'发货单' as 'csource' ,GETDATE() as 'ddate' ,'form WMS' as 'cmemo'," + "case when bReturnFlag = 1 then '多组织-红字采购入库' else '多组织-采购订单' end as 'cdefine1' " + "from "+AccCode+".dbo.DispatchList " + "where cDLCode = '"+jHead.getString("cbuscode")+"'"; @@ -514,11 +514,11 @@ public class SaleOutServiceImpl extends BaseService implem } @Override - public U8ResultEntity addSaleOutT(JSONObject parm) { + public U8ResultEntity addSaleOutT(JSONObject jsonObject) { String billCode = ""; String dlId = ""; String AccId = ""; - JSONObject jsonObject = parm.getJSONObject("jsonStr"); +// JSONObject jsonObject = parm.getJSONObject("jsonStr"); logger.info("接收到的参数"+jsonObject.toString()); StringBuffer resultStr = new StringBuffer();//回传json try { @@ -566,21 +566,38 @@ public class SaleOutServiceImpl extends BaseService implem if(StrUtil.isEmpty(AccCode)){ return BaseU8Result.getFailureMessageEntity("获取账套号有误,请联系管理员"); } + String ccodeSql = "SELECT ISNULL(max(CONVERT(DECIMAL(20, 0), ccode))+1, CONVERT (VARCHAR (20),ddate,112) + '0001') as ccode " + + "FROM "+AccCode+".dbo.RdRecord32 " + + "WHERE cCode LIKE CONVERT (VARCHAR (20),'"+DateUtil.format(jHead.getDate("ddate"),"yyyyMMdd")+"',112) + '%'" + + "AND len(cCode) = 12 GROUP BY ddate"; + //查询账套中的发货单信息 +// SaleInvEntity U8Obj = new SaleInvEntity(); +// U8Obj.setDataSourceCode("YONYOUU8NEW"); + List> ccodeHashMaps = saleInvDao.getU8BillData(ccodeSql,U8Obj); + if(CollectionUtils.isNotEmpty(ccodeHashMaps)){ + HashMap ccodeObj= ccodeHashMaps.get(0); + jHead.put("ccode",ccodeObj.get("ccode")); + }else{ + jHead.put("ccode",DateUtil.format(jHead.getDate("ddate"),"yyyyMMdd")+"0001"); + } + jHead.put("csource","发货单"); + + //验证单号唯一 - String cdefine5 = jsonObject.getString("cdefine5"); - if(StrUtil.isNotEmpty(cdefine5)){ - String cdefine5Sql = "select cdefine5 from "+AccCode+".dbo.rdrecord32 where cdefine5 = '"+cdefine5+"'"; - List> cdefine5Map = saleInvDao.getU8BillData(cdefine5Sql,U8Obj); - if(CollectionUtils.isNotEmpty(cdefine5Map) ){ - return BaseU8Result.getFailureMessageEntity("单号重复,请检查:"+cdefine5); - } - } +// String cdefine5 = jsonObject.getString("cdefine5"); +// if(StrUtil.isNotEmpty(cdefine5)){ +// String cdefine5Sql = "select cdefine5 from "+AccCode+".dbo.rdrecord32 where cdefine5 = '"+cdefine5+"'"; +// List> cdefine5Map = saleInvDao.getU8BillData(cdefine5Sql,U8Obj); +// if(CollectionUtils.isNotEmpty(cdefine5Map) ){ +// return BaseU8Result.getFailureMessageEntity("单号重复,请检查:"+cdefine5); +// } +// } //发货退货单主表@ //发货退货单主表 String sqlSelDisList = "select DLID as 'dlid',DLID as 'cdlcode' ,cDLCode as 'cbuscode' ,cDepCode as 'cdepcode' ,cPersonCode as 'cpersoncode' ,cCusCode as 'ccuscode'," + - "cCusCode as 'cinvoicecompany',cSTCode as 'cstcode ,'32' as 'cvouchtype' ,'普通销售' as 'cbustype' ,'发货单' as 'csource' ,GETDATE() as 'ddate' ,'form WMS' as 'cmemo'," + + "cCusCode as 'cinvoicecompany',cSTCode as 'cstcode' ,'32' as 'cvouchtype' ,'普通销售' as 'cbustype' ,'发货单' as 'csource' ,GETDATE() as 'ddate' ,'form WMS' as 'cmemo'," + "case when bReturnFlag = 1 then '多组织-红字采购入库' else '多组织-采购订单' end as 'cdefine1' " + "from "+AccCode+".dbo.DispatchList " + "where cDLCode = '"+jHead.getString("cbuscode")+"'"; @@ -635,7 +652,10 @@ public class SaleOutServiceImpl extends BaseService implem //表体 JSONArray body = new JSONArray(); JSONArray jBody = jsonObject.getJSONArray("body"); + int k = 1; for (int i = 0; i < jBody.size(); i++) { + System.out.println("错误的行"+k); + k++; JSONObject jBodyObj = jBody.getJSONObject(i); if(StrUtil.isEmpty(jBodyObj.getString("cinvcode"))){ resultStr.append("材料编码不能为空 行:"+i+1) ; @@ -659,22 +679,24 @@ public class SaleOutServiceImpl extends BaseService implem } } //发货退货单子表@ - String sqlSelDisLists = " select idlsid from "+AccCode+".dbo.DispatchList dl left join "+AccCode+".dbo.DispatchLists dls on dls.DLID = dl.DLID " + + String sqlSelDisLists = " select idlsid,irowno from "+AccCode+".dbo.DispatchList dl left join "+AccCode+".dbo.DispatchLists dls on dls.DLID = dl.DLID " + "where cDLCode = '"+jBodyObj.getString("cbdlcode")+"" + - "' and cInvCode = '"+jBodyObj.getString("cinvcode")+"" + - "' and irowno = '"+jBodyObj.getString("cdblrowno")+"'"; + "' and cInvCode = '"+jBodyObj.getString("cinvcode")+"'" ; +// "' and irowno = '"+jBodyObj.getString("cdblrowno")+"'"; List> selDisDetailsListMap = saleInvDao.getU8BillData(sqlSelDisLists,U8Obj); - if(CollectionUtils.isEmpty(selDisDetailsListMap) ){ - return BaseU8Result.getFailureMessageEntity("发货单子表查询失败"+jHead.getString("cbuscode")+"发货单表体存货"+jBodyObj.getString("cinvcode")+"行号"+jBodyObj.getString("cdblrowno")+"不存在"); + if(CollectionUtils.isEmpty(selDisDetailsListMap)&& selDisDetailsListMap.size()==0){ + continue; +// return BaseU8Result.getFailureMessageEntity("发货单子表查询失败"+jHead.getString("cbuscode")+"发货单表体存货"+jBodyObj.getString("cinvcode")+"行号"+jBodyObj.getString("cdblrowno")+"不存在"); } - HashMap selDisDetails= hashMaps.get(0); + HashMap selDisDetails= selDisDetailsListMap.get(0); if(StrUtil.isEmpty(jBodyObj.getString("idlsid"))){ jBodyObj.put("idlsid",selDisDetails.get("idlsid")); + jBodyObj.put("irowno",selDisDetails.get("irowno")); } //获取辅计量单位 - String dtInvSql = "select cInvCode,cInvName,cInvStd,Inv.cComUnitCode,cInvCCode,iChangRate, cPUComUnitCode,cSAComUnitCode,cProductUnit,cSTComUnitCode " + + String dtInvSql = "select inv.bInvBatch,cInvCode,cInvName,cInvStd,Inv.cComUnitCode,cInvCCode,iChangRate, cPUComUnitCode,cSAComUnitCode,cProductUnit,cSTComUnitCode " + "from "+AccCode+".dbo.Inventory Inv " + "left join "+AccCode+".dbo.ComputationUnit Com On Inv.cComUnitCode = Com.cComUnitCode " + "where cInvCode='" + jBodyObj.getString("cinvcode") +"'"; @@ -689,15 +711,19 @@ public class SaleOutServiceImpl extends BaseService implem String sqlCassUnit = "select * from "+AccCode+".dbo.ComputationUnit where cComUnitCode='" +dtInvObj.get("cSTComUnitCode")+"'"; List> dtUnit = saleInvDao.getU8BillData(sqlCassUnit,U8Obj); if(CollectionUtils.isEmpty(dtUnit) ){ - return BaseU8Result.getFailureMessageEntity("查询单位失败,请检查,行号:"+i+1); +// return BaseU8Result.getFailureMessageEntity("查询单位失败,请检查,行号:"+i+1); + jBodyObj.put("iinvexchrate",0); + }else { + HashMap dtUnitObj= dtUnit.get(0); + jBodyObj.put("iinvexchrate",dtUnitObj.get("iChangRate")); + jBodyObj.put("inum",jBodyObj.getBigDecimal("iquantity").divide(jBodyObj.getBigDecimal("iinvexchrate"),6, RoundingMode.HALF_UP)); } - HashMap dtUnitObj= dtUnit.get(0); - jBodyObj.put("iinvexchrate",dtUnitObj.get("iChangRate")); - jBodyObj.put("inum",jBodyObj.getBigDecimal("iquantity").divide(new BigDecimal(String.valueOf(dtUnitObj.get("iChangRate"))),6, RoundingMode.HALF_UP)); + + } - jBodyObj.put("irowno",i+1); + //默认字段 //是否需要开票 if(StrUtil.isEmpty(jBodyObj.getString("bneedbill"))){ @@ -728,6 +754,15 @@ public class SaleOutServiceImpl extends BaseService implem // } // } // } + jBodyObj.put("cProBatch",0); +// jBodyObj.put("csource","发货单"); +// jBodyObj.put("cbustype","普通销售"); + jBodyObj.put("cProBatch",0); + String bInvBatch = String.valueOf(dtInvObj.get("bInvBatch")); + if("true".equals(bInvBatch)){ + jBodyObj.put("cbatch",0); + } + body.add(jBodyObj); } JSONObject main = new JSONObject(); @@ -777,8 +812,10 @@ public class SaleOutServiceImpl extends BaseService implem delete.put("billid", UUID.randomUUID()); delete.put("AccId", AccId); delete.put("cVoucherId", billCode); + if(StrUtil.isNotEmpty(billCode)){ + String resultDelete = U8Util.sengBillToU8(delete.toString(), "8000110023"); + } //删除 - String resultDelete = U8Util.sengBillToU8(delete.toString(), "8000110023"); logger.info("新增失败:"+e.getMessage()); return BaseU8Result.getFailureMessageEntity("新增失败,请联系U8管理员"); }