浏览代码

出运明细优化查询

zengtx 2 年之前
父节点
当前提交
ae6fa0fadd

+ 72 - 57
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java

@@ -49,6 +49,7 @@ import org.jeecg.modules.documents.shippingDetails.service.ISyShippingDetailsSer
 import java.util.logging.SimpleFormatter;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrderItem;
 import org.jeecg.modules.monitor.service.impl.RedisServiceImpl;
@@ -148,77 +149,76 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 		QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())){
-			queryWrapper.like("t.documentNo",syShippingDetails.getDocumentNo());
+			queryWrapper.like("a.document_no",syShippingDetails.getDocumentNo());
 		}
 		//订单号
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())){
-			queryWrapper.like("t.orderNumber",syShippingDetails.getOrderNumber());
+			queryWrapper.like("b.order_number",syShippingDetails.getOrderNumber());
 		}
 		//单据日期
 		if(oConvertUtils.isNotEmpty(startTime)){
-		    queryWrapper.ge("t.documentDate",startTime);
-			queryWrapper.le("t.documentDate",endTime);
+		    queryWrapper.between("a.document_date",startTime,endTime);
+
 		}
 		//与发货日期
 		if(oConvertUtils.isNotEmpty(preDeliveryDateB)){
-			queryWrapper.ge("t.preDeliveryDate",preDeliveryDateB);
-			queryWrapper.le("t.preDeliveryDate",preDeliveryDateE);
+			queryWrapper.between("b.pre_delivery_date",preDeliveryDateB,preDeliveryDateE);
 		}
         //业务员
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())){
-			queryWrapper.like("t.salesman",syShippingDetails.getSalesman());
+			queryWrapper.eq("b.salesman",syShippingDetails.getSalesman());
 		}
 		//款号
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())){
-			queryWrapper.like("t.itemNumber",syShippingDetails.getItemNumber());
+			queryWrapper.like("b.item_number",syShippingDetails.getItemNumber());
 		}
 		//是否参照
 		if(oConvertUtils.isNotEmpty(refer)){
 			if(refer.equals("0")){
-				queryWrapper.eq("t.isReference","0");
+				queryWrapper.eq("b.is_reference","0");
 			}else{
-				queryWrapper.ne("t.isReference","0");
+				queryWrapper.ne("b.is_reference","0");
 			}
 		}
 		//供应商
 		if(oConvertUtils.isNotEmpty(supplier)){
-			queryWrapper.like("t.supplier",supplier);
+			queryWrapper.eq("b.supplier",supplier);
 		}
 		//分销点
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getDistributionPoint())){
-			queryWrapper.like("t.distributionPoint",syShippingDetails.getDistributionPoint());
+			queryWrapper.like("b.distribution_point",syShippingDetails.getDistributionPoint());
 		}
 		//客户
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getCustomerAbbreviation())){
-			queryWrapper.like("t.customerAbbreviation",syShippingDetails.getCustomerAbbreviation());
+			queryWrapper.eq("b.customer_abbreviation",syShippingDetails.getCustomerAbbreviation());
 		}
 
 		//账套号
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getAccount())){
-			queryWrapper.like("t.account",syShippingDetails.getAccount());
+			queryWrapper.eq("b.account",syShippingDetails.getAccount());
 		}
 		//报关要素
 		if(oConvertUtils.isNotEmpty(isElement)){
 			if(isElement.equals("0")){//没有维护
-				queryWrapper.isNull("t.elementsId");
+				queryWrapper.isNull("b.elements_id");
 			}else{
-				queryWrapper.isNotNull("t.elementsId");
+				queryWrapper.isNotNull("b.elements_id");
 			}
 
 		}
 		//提交状态
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())){
-			queryWrapper.eq("t.submitStatus",syShippingDetails.getSubmitStatus());
+			queryWrapper.eq("b.submit_status",syShippingDetails.getSubmitStatus());
 		}
 		//ID
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getId())){
-			queryWrapper.like("t.id",syShippingDetails.getId());
+			queryWrapper.eq("a.id",syShippingDetails.getId());
 		}
 		//小po
 		if(oConvertUtils.isNotEmpty(syShippingDetails.getSmallPo())){
 			String[] smllSplit = syShippingDetails.getSmallPo().split(",");
 			List<String> asList = Arrays.asList(smllSplit);
-			queryWrapper.in("t.smallPo",asList);
+			queryWrapper.in("b.small_po",asList);
 		}
 
 		Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
@@ -226,18 +226,37 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 			queryWrapper.eq("1",1);
 			 IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
 			  for(SyShippingDetailsVo str:pageList.getRecords()){
+				  //赋值报关信息
+				  SyDeclarationElements entity = syDeclarationElementsService.getById(str.getElementsId());
+				  if(oConvertUtils.isNotEmpty(entity)){
+					  str.setDeclarationName(entity.getDeclarationName());
+					  str.setHsCode(entity.getHsCode());
+					  str.setEnglishProductName(entity.getEnglishProductName());
+				  }
 				  amountTo = amountTo+str.getShipmentQuantity();
 			  }
 
-				result.setSuccess(true);
+			pageList.setRecords(pageList.getRecords().stream().sorted(Comparator.comparing(SyShippingDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()));
+
+			result.setSuccess(true);
 				result.setResult(pageList);
 				result.setMessage(amountTo.toString());
 		}else{//成衣
 			queryWrapper.eq("1",1);
 			IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
+
 			for(SyShippingDetailsVo str:pageList.getRecords()){
+				//赋值报关信息
+				SyDeclarationElements entity = syDeclarationElementsService.getById(str.getElementsId());
+				if(oConvertUtils.isNotEmpty(entity)){
+					str.setDeclarationName(entity.getDeclarationName());
+					str.setHsCode(entity.getHsCode());
+					str.setEnglishProductName(entity.getEnglishProductName());
+				}
 				amountTo = amountTo+str.getShipmentQuantity();
 			}
+
+			pageList.setRecords(pageList.getRecords().stream().sorted(Comparator.comparing(SyShippingDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()));
 			result.setSuccess(true);
 			result.setResult(pageList);
 			result.setMessage(amountTo.toString());
@@ -505,63 +524,61 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 	  if(selectAll.equals("1")) {
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())) {
-			  queryWrapper.like("t.documentNo", syShippingDetails.getDocumentNo());
+			  queryWrapper.like("a.document_no", syShippingDetails.getDocumentNo());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())) {
-			  queryWrapper.like("t.orderNumber", syShippingDetails.getOrderNumber());
+			  queryWrapper.like("b.order_number", syShippingDetails.getOrderNumber());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getStartTime())) {
-			  queryWrapper.ge("t.documentDate", syShippingDetails.getStartTime());
-			  queryWrapper.le("t.documentDate", syShippingDetails.getEndTime());
+			  queryWrapper.between("a.document_date", syShippingDetails.getStartTime(),syShippingDetails.getEndTime());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getPreDeliveryDateB())) {
-			  queryWrapper.ge("t.preDeliveryDate", syShippingDetails.getPreDeliveryDateB());
-			  queryWrapper.le("t.preDeliveryDate", syShippingDetails.getPreDeliveryDateE());
+			  queryWrapper.between("b.pre_delivery_date", syShippingDetails.getPreDeliveryDateB(),syShippingDetails.getPreDeliveryDateE());
 		  }
 
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())) {
-			  queryWrapper.like("t.salesman", syShippingDetails.getSalesman());
+			  queryWrapper.eq("b.salesman", syShippingDetails.getSalesman());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())) {
-			  queryWrapper.like("t.itemNumber", syShippingDetails.getItemNumber());
+			  queryWrapper.like("b.item_number", syShippingDetails.getItemNumber());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getRefer())) {
-			  queryWrapper.eq("t.isReference", syShippingDetails.getRefer());
+			  queryWrapper.eq("b.is_reference", syShippingDetails.getRefer());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSupplier())) {
-			  queryWrapper.like("t.supplier", syShippingDetails.getSupplier());
+			  queryWrapper.eq("b.supplier", syShippingDetails.getSupplier());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getIsElement())) {
 			  if (syShippingDetails.getIsElement().equals("0")) {//没有维护
-				  queryWrapper.isNull("t.elementsId");
+				  queryWrapper.isNull("b.elements_id");
 			  } else {
-				  queryWrapper.isNotNull("t.elementsId");
+				  queryWrapper.isNotNull("b.elements_id");
 			  }
 
 		  }
 		  //分销点
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getDistributionPoint())) {
-			  queryWrapper.like("t.distributionPoint", syShippingDetails.getDistributionPoint());
+			  queryWrapper.like("b.distribution_point", syShippingDetails.getDistributionPoint());
 		  }
 		  //客户
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getCustomerAbbreviation())) {
-			  queryWrapper.like("t.customerAbbreviation", syShippingDetails.getCustomerAbbreviation());
+			  queryWrapper.eq("b.customer_abbreviation", syShippingDetails.getCustomerAbbreviation());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())) {
-			  queryWrapper.eq("t.submitStatus", syShippingDetails.getSubmitStatus());
+			  queryWrapper.eq("b.submit_status", syShippingDetails.getSubmitStatus());
 		  }
 		  //账套号
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getAccount())) {
-			  queryWrapper.like("t.account", syShippingDetails.getAccount());
+			  queryWrapper.eq("b.account", syShippingDetails.getAccount());
 		  }
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getId())) {
-			  queryWrapper.like("t.id", syShippingDetails.getId());
+			  queryWrapper.eq("a.id", syShippingDetails.getId());
 		  }
 		  //小po
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSmallPo())) {
 			  String[] smllSplit = syShippingDetails.getSmallPo().split(",");
 			  List<String> asList = Arrays.asList(smllSplit);
-			  queryWrapper.in("t.smallPo", asList);
+			  queryWrapper.in("b.small_po", asList);
 		  }
 	  }else{
 
@@ -570,7 +587,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 		  for(String str : groupidSplit){
 			  strList.add(str);
 		  }
-		  queryWrapper.in("t.groupId",strList);
+		  queryWrapper.in("b.group_id",strList);
 
 	  }
 
@@ -1466,60 +1483,58 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 		 //是否全选
          if(selectAll.equals("1")) {
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())) {
-				 queryWrapper.like("t.documentNo", syShippingDetails.getDocumentNo());
+				 queryWrapper.like("b.document_no", syShippingDetails.getDocumentNo());
 			 }
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())) {
-				 queryWrapper.like("t.orderNumber", syShippingDetails.getOrderNumber());
+				 queryWrapper.like("b.order_number", syShippingDetails.getOrderNumber());
 			 }
 			 if (oConvertUtils.isNotEmpty(startTime)) {
-				 queryWrapper.ge("t.documentDate", startTime);
-				 queryWrapper.le("t.documentDate", endTime);
+				 queryWrapper.between("b.document_date", startTime,endTime);
 			 }
 			 if (oConvertUtils.isNotEmpty(preDeliveryDateB)) {
-				 queryWrapper.ge("t.preDeliveryDate", preDeliveryDateB);
-				 queryWrapper.le("t.preDeliveryDate", preDeliveryDateE);
+				 queryWrapper.between("b.pre_delivery_date", preDeliveryDateB,preDeliveryDateE);
 			 }
 
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())) {
-				 queryWrapper.like("t.salesman", syShippingDetails.getSalesman());
+				 queryWrapper.eq("b.salesman", syShippingDetails.getSalesman());
 			 }
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())) {
-				 queryWrapper.like("t.itemNumber", syShippingDetails.getItemNumber());
+				 queryWrapper.like("b.item_number", syShippingDetails.getItemNumber());
 			 }
 			 if (oConvertUtils.isNotEmpty(refer)) {
-				 queryWrapper.eq("t.isReference", refer);
+				 queryWrapper.eq("b.is_reference", refer);
 			 }
 			 if (oConvertUtils.isNotEmpty(supplier)) {
-				 queryWrapper.like("t.supplier", supplier);
+				 queryWrapper.eq("b.supplier", supplier);
 			 }
 			 if (oConvertUtils.isNotEmpty(isElement)) {
 				 if (isElement.equals("0")) {//没有维护
-					 queryWrapper.isNull("t.elementsId");
+					 queryWrapper.isNull("b.elements_id");
 				 } else {
-					 queryWrapper.isNotNull("t.elementsId");
+					 queryWrapper.isNotNull("b.elements_id");
 				 }
 
 			 }
 			 //分销点
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getDistributionPoint())) {
-				 queryWrapper.like("t.distributionPoint", syShippingDetails.getDistributionPoint());
+				 queryWrapper.like("b.distribution_point", syShippingDetails.getDistributionPoint());
 			 }
 			 //客户
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getCustomerAbbreviation())) {
-				 queryWrapper.like("t.customerAbbreviation", syShippingDetails.getCustomerAbbreviation());
+				 queryWrapper.eq("b.customer_abbreviation", syShippingDetails.getCustomerAbbreviation());
 			 }
 			 //账套号
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getAccount())) {
-				 queryWrapper.like("t.account", syShippingDetails.getAccount());
+				 queryWrapper.eq("b.account", syShippingDetails.getAccount());
 			 }
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())) {
-				 queryWrapper.eq("t.submitStatus", syShippingDetails.getSubmitStatus());
+				 queryWrapper.eq("b.submit_status", syShippingDetails.getSubmitStatus());
 			 }
 			 //小po
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getSmallPo())) {
 				 String[] smllSplit = syShippingDetails.getSmallPo().split(",");
 				 List<String> asList = Arrays.asList(smllSplit);
-				 queryWrapper.in("t.smallPo", asList);
+				 queryWrapper.in("b.small_po", asList);
 			 }
 
 		 }else{//根据分组ID导出
@@ -1528,7 +1543,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
             for(String str : groupidSplit){
 					strList.add(str);
 			}
-			 queryWrapper.in("t.groupId",strList);
+			 queryWrapper.in("b.group_id",strList);
 		 }
 
 		 Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);

+ 9 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/xml/SyShippingDetailsMapper.xml

@@ -66,7 +66,7 @@ a.end_customer) as endCustomer,
 
 
 <select id="queryShippingDetails" resultType="org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo">
-    select t.* from(select b.is_reference as isReference,a.id as id,GROUP_CONCAT(b.id) as itemIds,a.document_no as documentNo,a.document_date as documentDate,b.order_number as orderNumber,a.push_state,b.submit_status as submitStatus,
+    select a.create_time as createTime,b.is_reference as isReference,a.id as id,GROUP_CONCAT(b.id) as itemIds,a.document_no as documentNo,a.document_date as documentDate,b.order_number as orderNumber,a.push_state,b.submit_status as submitStatus,
     b.customer_abbreviation as customerAbbreviation,b.sales_department as salesDepartment,b.salesman as salesman,a.customer as customer,b.specification_and_model as specificationAndModel,
     b.small_po as smallPo,b.pack_id as packId,b.pre_delivery_date as preDeliveryDate,b.order_date as orderDate,b.inventory_ccode as inventoryCcode,
     sum(b.shipment_quantity) as shipmentQuantity,b.customs_declaration_unit_price as customsDeclarationUnitPrice,round(sum(b.order_quantity),4) as orderQuantity,
@@ -85,21 +85,17 @@ a.end_customer) as endCustomer,
     b.sales_type_text as salesTypeText,b.customer_name as customerName,b.exchange_rate as exchangeRate,a.whole_order_total as wholeOrderTotal,
     b.declaration_elements as declarationElements,b.number_of_sets as numberOfSets,a.chinese_name as chineseName,b.account as account,b.supplier as supplier,
     b.garment_factory as garmentFactory,b.elements_id as elementsId,b.coding_rules as codingRules,b.colour as colour,b.group_id as groupId,
-     c.declaration_name as declarationName,c.hs_code as hsCode,c.english_product_name as englishProductName,FROM_UNIXTIME(left(b.d_arrive_date,10),'%Y-%m-%d') as arrivalDate
+    FROM_UNIXTIME(left(b.d_arrive_date,10),'%Y-%m-%d') as arrivalDate
      from sy_shipping_details a
 left join sy_shipping_details_item b
 on a.id = b.shipping_details_id and b.del_flag = 0
-left join sy_declaration_elements c
-on b.elements_id = c.id
-where a.del_flag = 0
+${ew.customSqlSegment} and  b.inventory_ccode LIKE '19%' and a.del_flag = 0
 GROUP BY b.group_id
- order by a.create_time desc) as t
-${ew.customSqlSegment} and  t.inventoryCcode LIKE '19%' order by t.itemNumber,t.distributionPoint
 
 </select>
 
     <select id="queryShippingDetailsGarment" resultType="org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo">
-    select t.* from(select b.is_reference as isReference,a.id as id,GROUP_CONCAT(b.id) as itemIds,a.document_no as documentNo,a.document_date as documentDate,b.order_number as orderNumber,a.push_state,b.submit_status as submitStatus,
+    select a.create_time as createTime,b.is_reference as isReference,a.id as id,GROUP_CONCAT(b.id) as itemIds,a.document_no as documentNo,a.document_date as documentDate,b.order_number as orderNumber,a.push_state,b.submit_status as submitStatus,
     b.customer_abbreviation as customerAbbreviation,b.sales_department as salesDepartment,b.salesman as salesman,a.customer as customer,b.specification_and_model as specificationAndModel,
     b.small_po as smallPo,b.pack_id as packId,b.pre_delivery_date as preDeliveryDate,b.order_date as orderDate,b.inventory_ccode as inventoryCcode,
     sum(b.shipment_quantity) as shipmentQuantity,b.customs_declaration_unit_price as customsDeclarationUnitPrice,sum(b.order_quantity) as orderQuantity,
@@ -118,16 +114,13 @@ ${ew.customSqlSegment} and  t.inventoryCcode LIKE '19%' order by t.itemNumber,t.
     b.sales_type_text as salesTypeText,b.customer_name as customerName,b.exchange_rate as exchangeRate,a.whole_order_total as wholeOrderTotal,
     b.declaration_elements as declarationElements,b.number_of_sets as numberOfSets,a.chinese_name as chineseName,b.account as account,b.supplier as supplier,
     b.garment_factory as garmentFactory,b.elements_id as elementsId,b.coding_rules as codingRules,b.colour as colour,b.group_id as groupId,
-     c.declaration_name as declarationName,c.hs_code as hsCode,c.english_product_name as englishProductName,FROM_UNIXTIME(left(b.d_arrive_date,10),'%Y-%m-%d') as arrivalDate
+     FROM_UNIXTIME(left(b.d_arrive_date,10),'%Y-%m-%d') as arrivalDate
      from sy_shipping_details a
 left join sy_shipping_details_item b
 on a.id = b.shipping_details_id and b.del_flag = 0
-left join sy_declaration_elements c
-on b.elements_id = c.id
-where a.del_flag = 0
+${ew.customSqlSegment}
+and a.del_flag = 0  and b.inventory_ccode not LIKE '19%'
 GROUP BY b.group_id
- order by a.create_time desc) as t
-${ew.customSqlSegment} and  t.inventoryCcode not LIKE '19%'
 
 </select>
     
@@ -272,7 +265,7 @@ ${ew.customSqlSegment}
     </select>
 
     <select id="excelItem" resultType="org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo">
-       select t.* from( select a.document_date as documentDate,a.document_no as documentNo,b.salesman as salesman,b.submit_status as submitStatus,
+        select a.document_date as documentDate,a.document_no as documentNo,b.salesman as salesman,b.submit_status as submitStatus,
        b.order_number as orderNumber,b.item_number as itemNumber,b.colour,b.pre_delivery_date as preDeliveryDate,b.sales_unit_price as salesUnitPrice,
         b.inventory_code as inventoryCode,b.inventory_name as inventoryName,c.declaration_name as declarationName,a.create_by as createBy,a.create_time as createTime,
         b.material_composition as materialComposition,b.guangpei_gate_width as guangpeiGateWidth,b.weight as weight,b.is_reference as isReference,
@@ -286,8 +279,8 @@ left join sy_declaration_elements c
 on b.elements_id = c.id
 left join sy_order_data_item d
 on b.sy_order_data_item_id = d.id
-where a.del_flag = 0 and b.del_flag = 0 and b.inventory_ccode NOT LIKE '19%') t
 ${ew.customSqlSegment}
+and a.del_flag = 0 and b.del_flag = 0 and b.inventory_ccode NOT LIKE '19%'
     </select>