Browse Source

采购发票调整、回写推送srm调整

huxy 2 tuần trước cách đây
mục cha
commit
0541989fbc

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/config/InterfaceConnUtils.java

@@ -19,6 +19,10 @@ import java.io.UnsupportedEncodingException;
 public class InterfaceConnUtils {
     public static JSONArray doPost(JSONArray json, String url) {
         //定义测试返回JSON
+        for (int i=0;i<json.size();i++){
+            JSONObject jsonObject=json.getJSONObject(0);
+            jsonObject.put("ALLOWHANDWORK","1");//取自己设置的单据号
+        }
         JSONArray onejb = new JSONArray();
         HttpClient httpClient = new DefaultHttpClient();
         HttpPost httpPost=new HttpPost("http://192.168.1.103:8087/api/U8Server/"+url);

+ 37 - 34
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationMapper.xml

@@ -230,7 +230,8 @@
 
         inner join UFDATA_102_2021.dbo.Person j on j.cPersonCode=ss.cPersonCode
         inner JOIN UFDATA_102_2021.dbo.Customer cu ON ss.cCusCode = cu.cCusCode
-        WHERE cc.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and c.cInvCcode like '19%' GROUP BY v.cVenAbbName
+        WHERE <!--cc.cCusCode in ('T020001','0001') and ss.cCusCode not in ('T020001','0001') and  2025-06-19注释 -->
+         c.cInvCcode like '19%' GROUP BY v.cVenAbbName
 
 
         union all
@@ -309,40 +310,42 @@
         inner join UFDATA_101_2021.dbo.Person j on j.cPersonCode=ss1.cPersonCode
         inner JOIN UFDATA_101_2021.dbo.Customer cu ON ss1.cCusCode = cu.cCusCode
         WHERE cc.cCusCode in ('0001') and ss.cCusCode in ('T020001') and c.cInvCcode like '19%' GROUP BY v.cVenAbbName
-        UNION ALL
 
-		SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,'101' as pkOrg,
-            max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales,
-            max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department,
-            max(cc.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,
-            max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal,
-            sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity
-        FROM  UFDATA_103_2021.dbo.SO_SODetails s
-        inner JOIN UFDATA_103_2021.dbo.SO_SOMain ss on ss.ID= s.ID
-        inner JOIN (
-                     SELECT
-                     om.cCode AS omCode,
-                     om.MOID AS ompoId,od.MODetailsID AS ompoIdItem,
-                     om.cVenCode AS supplierCode,od.cInvCode,od.isosid,od.iQuantity
-                     FROM
-                     UFDATA_103_2021.dbo.OM_MOMain om
-                     inner JOIN UFDATA_103_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
-   inner JOIN (select MOID,max(iSendQTY) as iSendQTY from UFDATA_103_2021.dbo.OM_MOMaterials GROUP BY MOID) ot on ot.MOID=om.MOID
-      WHERE
-                     om.iVerifyStateNew = 2  and om.cCode like CONCAT('%',#{code},'%')
-                     and (om.cCloser is null or ( (od.iReceivedQTY is not null or od.iReceivedQTY != 0) and (ot.iSendQTY is not null or ot.iSendQTY !=0) )or om.cCloser='asuser')
-                     ) o ON s.isosid  = o.isosid AND s.cInvCode = o.cInvCode
-        inner JOIN UFDATA_103_2021.dbo.Vendor v ON o.supplierCode= v.cVenCode
-        inner JOIN UFDATA_103_2021.dbo.Inventory c on c.cInvCode=s.cInvCode
-        inner JOIN UFDATA_103_2021.dbo.Person  pe ON ss.cPersonCode = pe.cPersonCode
-        inner JOIN UFDATA_103_2021.dbo.Department de ON ss.cDepCode = de.cDepCode
-        inner JOIN UFDATA_103_2021.dbo.Customer cc ON ss.cCusCode = cc.cCusCode
-        WHERE c.cInvCcode like '19%' GROUP BY v.cVenAbbName
+
+    <!--  UNION ALL 2025-6-19注释
+
+      SELECT max(ss.iExchRate) as exchangeRate,min(s.iTaxUnitPrice) as soPrice,'103' as pkOrg,
+          max(o.omCode) as planNum,max(s.cdefine22) as poStyleNum,max(pe.cPersonName) as exportSales,
+          max(ss.cSOCode) as garmentContractno,max(de.cDepName) as department,
+          max(cc.cCusAbbName) as customerShortame,v.cVenAbbName as processUnit,
+          max(ss.iTaxRate) as taxrate,max(ss.cMaker) as preparedBy,sum(s.iNatSum) as salesordersLocaltotal,
+          sum(s.iSum) as salesrrdersOriginaltotal,sum(o.iQuantity) as planQuantity
+      FROM  UFDATA_103_2021.dbo.SO_SODetails s
+      inner JOIN UFDATA_103_2021.dbo.SO_SOMain ss on ss.ID= s.ID
+      inner JOIN (
+                   SELECT
+                   om.cCode AS omCode,
+                   om.MOID AS ompoId,od.MODetailsID AS ompoIdItem,
+                   om.cVenCode AS supplierCode,od.cInvCode,od.isosid,od.iQuantity
+                   FROM
+                   UFDATA_103_2021.dbo.OM_MOMain om
+                   inner JOIN UFDATA_103_2021.dbo.OM_MODetails od ON om.MOID = od.MOID
+ inner JOIN (select MOID,max(iSendQTY) as iSendQTY from UFDATA_103_2021.dbo.OM_MOMaterials GROUP BY MOID) ot on ot.MOID=om.MOID
+    WHERE
+                   om.iVerifyStateNew = 2  and om.cCode like CONCAT('%',#{code},'%')
+                   and (om.cCloser is null or ( (od.iReceivedQTY is not null or od.iReceivedQTY != 0) and (ot.iSendQTY is not null or ot.iSendQTY !=0) )or om.cCloser='asuser')
+                   ) o ON s.isosid  = o.isosid AND s.cInvCode = o.cInvCode
+      inner JOIN UFDATA_103_2021.dbo.Vendor v ON o.supplierCode= v.cVenCode
+      inner JOIN UFDATA_103_2021.dbo.Inventory c on c.cInvCode=s.cInvCode
+      inner JOIN UFDATA_103_2021.dbo.Person  pe ON ss.cPersonCode = pe.cPersonCode
+      inner JOIN UFDATA_103_2021.dbo.Department de ON ss.cDepCode = de.cDepCode
+      inner JOIN UFDATA_103_2021.dbo.Customer cc ON ss.cCusCode = cc.cCusCode
+      WHERE c.cInvCcode like '19%' GROUP BY v.cVenAbbName -->
 
 
 
 
-    /* UNION ALL
+    <!-- UNION ALL
 
 
 
@@ -378,16 +381,16 @@
         left join UFDATA_102_2021.dbo.SO_SODetails s on s.iSOsID=g.iorderdid
         left join UFDATA_102_2021.dbo.so_somain ss on ss.id=s.id
 
-				left join UFDATA_101_2021.dbo.PO_Pomain f1 on f1.cPOID=ss.csocode
+                left join UFDATA_101_2021.dbo.PO_Pomain f1 on f1.cPOID=ss.csocode
         left join UFDATA_101_2021.dbo.po_podetails g1 on g1.POID=f1.POID and g1.ivouchrowno=s.iRowNo
         left join UFDATA_101_2021.dbo.SO_SODetails s1 on s1.iSOsID=g1.iorderdid
         left join UFDATA_101_2021.dbo.so_somain ss1 on ss1.id=s1.id
 
         left join UFDATA_101_2021.dbo.Person j on j.cPersonCode=ss1.cPersonCode
         left JOIN UFDATA_101_2021.dbo.Customer cu ON ss1.cCusCode = cu.cCusCode
-       -- WHERE cc.cCusCode in ('0001') and ss.cCusCode in ('T020001') and c.cInvCcode like '19%'
-				GROUP BY v.cVenAbbName;
-*/
+        /* WHERE cc.cCusCode in ('0001') and ss.cCusCode in ('T020001') and c.cInvCcode like '19%' */
+                GROUP BY v.cVenAbbName;
+  -->
     </select>
 
 

+ 5 - 32
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/service/impl/SyCostAllocationServiceImpl.java

@@ -191,33 +191,8 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
             return null;
         }
         syCostAllocation = list.get(0);
-//        List<String> strs3=Arrays.asList(syCostAllocation.getGarmentContractno().split(",")).stream().distinct().collect(Collectors.toList());
-//        List<String> strs3=new ArrayList<>();
         List<String> strs3= syCostAllocationMapper.queryByCostHead3(plannum);
-//        List<GarmentContract> garmentContractList= syCostAllocationMapper.queryByCostHead2(plannum);
-//        System.out.println("garmentContractList\t"+garmentContractList);
-//        garmentContractList.forEach(g->{
-//            strs3.add(g.getContractno());
-//        });
-////        String strs="";
-//
-//        System.out.println("maps\t"+maps.get("maps"));
-//
-//        System.out.println("strs3前\t"+strs3);
-//        Map<String,List<String>> map1=(HashMap) maps.get("maps");
-//        for (String str : map1.keySet()){
-//            List<String> list1=map1.get(str);
-//            garmentContractList.forEach(g->{
-//                if (g.getAccount().equals(str)&&list1.contains(g.getCcuscode())){
-//                    strs3.remove(g.getContractno());
-//                }
-//            });
-//        }
-//
-//        System.out.println("strs3后\t"+strs3);
-
         syCostAllocation.setGarmentContractno(strs3.toString().substring(1,strs3.toString().length()-1));
-
         // 销售订单附件
         List<AccessorItem> accessorItemList = new ArrayList<>();
         if (org.jeecg.modules.system.util.oConvertUtils.isNotEmpty(syCostAllocation.getGarmentContractno())) {
@@ -237,15 +212,12 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
 
         //查询单证面损数据   面料(不)含税成本
         SyFabricLossReport syLossReport1 = null;
-//        System.out.println("面损plan_code\t"+plannum+"\t面损长度\t"+plannum.length());
         QueryWrapper<SyFabricLossReport> queryLossWrapper = new QueryWrapper<>();
         queryLossWrapper.eq("plan_code", plannum);
         List<SyFabricLossReport> syLossReportList = syFabricLossReportService.list(queryLossWrapper);
-//        System.out.println("面损syLossReportList\t"+syLossReportList.size());
         if (syLossReportList.size()>0){
             syLossReport1 = syLossReportList.get(0);
         }
-
         FabricLoss fabricLoss1 = null;
         if (syLossReport1 != null){
             //人民币面料含税成本和不含税成本
@@ -259,9 +231,9 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
                     }
                 }
             }
-//            syCostAllocation.setFabriccostIncludestax(new BigDecimal(fabricLoss1.getActualMoney()));// 实际总金额
+//            syCostAllocation.setFabriccostInclu destax(new BigDecimal(fabricLoss1.getActualMoney()));// 实际总金额
+            System.out.println("面料含税人民币1\t"+fabariccostIncludestax);
             syCostAllocation.setFabriccostIncludestax(fabariccostIncludestax);// 实际总金额
-//            System.out.println("实际总金额1\t"+fabariccostIncludestax);
             syCostAllocation.setFabriccostNotincludestax(syCostAllocation.getFabriccostIncludestax().divide(new BigDecimal(1.13),2,BigDecimal.ROUND_HALF_UP));
             //美元面料含税成本和不含税成本
             syCostAllocation.setFabriccostIncludestaxUsd(syCostAllocation.getFabriccostIncludestax().divide(syCostAllocation.getExchangeRate(),2,BigDecimal.ROUND_HALF_UP));
@@ -460,10 +432,10 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
                 }
                 Fabric.setRemainingQuantitycost(cost);
                 BigDecimal costUsd=cost.divide(syCostAllocation.getExchangeRate(),4,BigDecimal.ROUND_HALF_UP);
-                if(syCostAllocation!=null&&syCostAllocation.getFabriccostIncludestax()!=null){
+//                if(syCostAllocation!=null&&syCostAllocation.getFabriccostIncludestax()!=null){
 //                    syCostAllocation.setFabriccostIncludestax(syCostAllocation.getFabriccostIncludestax().subtract(cost).setScale(2, RoundingMode.HALF_UP));
 //                    syCostAllocation.setFabriccostIncludestaxUsd(syCostAllocation.getFabriccostIncludestaxUsd().subtract(costUsd).setScale(2, RoundingMode.HALF_UP));
-                }
+//                }
                 Fabric.setSyRemaining(syRemaining);
             }
 
@@ -543,6 +515,7 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
                         }
                     }
                 }
+                System.out.println("面料含税人民币2\t"+usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
                 syCostAllocation.setFabriccostIncludestax(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
 //                System.out.println("实际总金额2\t"+usageQuantityTotal);
                 syCostAllocation.setFabriccostNotincludestax(notincludestaxTotal);

+ 3 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/controller/SyLetterDepositController.java

@@ -627,7 +627,9 @@ public class SyLetterDepositController extends JeecgController<SyLetterDeposit,
 			 List<SyLetterDepositItem> list = syLetterDepositMapper.printItem(id);
 			 //集合转map
 			 for(SyLetterDepositItem li:list){
-				 li.setEnglishName(li.getEnglishName().trim());
+			 	 if (oConvertUtils.isNotEmpty(li.getEnglishName())){
+					 li.setEnglishName(li.getEnglishName().trim());
+				 }
 				 totalGrossWeight = totalGrossWeight.add(li.getTotalGrossWeight());
 				 totalNetweight = totalNetweight.add(li.getTotalNetWeight());
 				 tatolNumber  = tatolNumber.add(li.getTotal());

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/controller/SyPreAssembledPackingListController.java

@@ -1293,7 +1293,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
             maps.put(0,listMap);
             templateExcelConstants.setColForEach(true);
             Workbook workbook = ExcelExportUtil.exportExcelClone(maps,templateExcelConstants);
-            refreshSheet(workbook,temps,status);//配置某列数据
+            refreshSheet(workbook,temps,status);//配置某列数据--->导出子表数据
             response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
             response.setCharacterEncoding("utf-8");
             ServletOutputStream outputStream = response.getOutputStream();

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/entity/SyPreAssembledPackingList.java

@@ -59,8 +59,8 @@ public class SyPreAssembledPackingList implements Serializable {
 	@ApiModelProperty(value = "品名")
 	private String productName;
 	/**品名*/
-	@TableField(exist = false)
 	//@Excel(name = "英文品名", width = 35,groupName = "主表信息")
+	@TableField(exist = false)
 	@ApiModelProperty(value = "英文品名")
 	private String englishProductName;
 	/**尺码范围*/

+ 10 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java

@@ -1443,6 +1443,11 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				mapt.put("CVENCODE",orderData.get("cvencode"));//供应商编码
 				map5.put("CPAYCODE",orderData.get("cPayCode"));//付款条件编码(如果传空,取来源单据)
 				map5.put("CBUSTYPE",orderData.get("cBusType"));//业务类型(如果传空,取来源单据)
+				if(orderData.get("cBusType").toString().indexOf("采购")>-1){
+					map5.put("CPTCODE","01");
+				}else{
+					map5.put("CPTCODE","02");
+				}
 				map5.put("CEXCH_NAME",orderData.get("cexchname"));//CEXCH_NAME 币种名称
 				map5.put("IEXCHRATE",orderData.get("nflat"));//汇率(如果传空,接口默认1)cPayCode
 				map.put("IEXCHRATE",orderData.get("nflat"));//汇率
@@ -2749,6 +2754,11 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				jsonObject1.put("CDEFINE12",venName);//供应商全称
 			}
 			jsonObject1.put("CBUSTYPE",order.get("cBusType"));//业务类型
+			if(order.get("cBusType").toString().indexOf("采购")>-1){
+				jsonObject1.put("CPTCODE","01");
+			}else{
+				jsonObject1.put("CPTCODE","02");
+			}
 			jsonObject1.put("CCUSCODE",order.get("cCusCode"));//客户编码
 			jsonObject1.put("CDEPCODE",order.get("cDepCode"));//部门编码
 			jsonObject1.put("SALETPYECODE",order.get("cSTCode"));//销售类型编码

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/PushJob.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrder;
+import org.jeecg.modules.documents.syShippingOrder.mapper.SyShippingOrderItemMapper;
 import org.jeecg.modules.documents.syShippingOrder.mapper.SyShippingOrderMapper;
 import org.jeecg.modules.splfi.controller.SyPackingListFabricController;
 import org.jeecg.modules.splt.controller.SyPackingListTailoringController;
@@ -25,6 +26,9 @@ public class PushJob implements Job {
     @Autowired
     private SyShippingOrderMapper syShippingOrderMapper;
 
+    @Autowired
+    private SyShippingOrderItemMapper syShippingOrderItemMapper;
+
     @Autowired
     private SyPackingListTailoringController syPackingListTailoringController;
 
@@ -72,6 +76,11 @@ public class PushJob implements Job {
             if(codeMaps.get("message").toString().length()>2){
                 String names=codeMaps.get("message").toString();
                 order.setTimeMesage(names.substring(1,names.length()-1));
+//                order.setPushSrmState("0");//成功了就回写成0
+                UpdateWrapper updateWrapper2=new UpdateWrapper();
+                updateWrapper2.in("sy_shipping_order_item_id",order.getId());
+                updateWrapper2.set("push_srm_state","0");//成功推送就回写成0
+                syShippingOrderItemMapper.update(null,updateWrapper2);
             }
             if(codeMaps.get("error").toString().length()>2){
                 String names=codeMaps.get("error").toString();

+ 7 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -11,6 +11,7 @@ import org.hibernate.engine.jdbc.Size;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.RedisUtil;
 import org.jeecg.common.util.UUIDGenerator;
 import org.jeecg.common.util.oConvertUtils;
@@ -2196,7 +2197,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			code=orderNumber+code.substring(code.indexOf("0"));
 			redisUtil.set("pushsno002", code);//采购委外发-票单
 			codeMaps.put(code,listTailoringMaps.get(customer));
-			jsonObject1.put("CVOUCHCODE",code);//发-票号
+			jsonObject1.put("CVOUCHCODE",code);//发-票号 CBUSTYPE
 			jsonObject1.put("CMAKER","进出口平台管理员");//制单人
 			jsonObject1.put("CHANDLER","进出口平台管理员");//审核人
 			jsonObject1.put("CACCID",account);//账套号
@@ -2220,6 +2221,11 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			}
 			if (orderData.containsKey("cBusType")){
 				jsonObject1.put("CBUSTYPE",orderData.get("cBusType"));//业务类型
+				if(orderData.get("cBusType").toString().indexOf("采购")>-1){
+					jsonObject1.put("CPTCODE","01");
+				}else{
+					jsonObject1.put("CPTCODE","02");
+				}
 			}
 			jsonObject1.put("IEXCHRATE",orderData.get("nflat"));//汇率
 			jsonObject1.put("CEXCH_NAME",orderData.get("cexchname"));//币种名称