移动端库区与仓库管理统计数据的优化,排序模糊查询优化

product
chuang 2 years ago
parent 35ca5b1a8d
commit 08ad5539ae

@ -113,7 +113,6 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, MaterialEnt
}else{ }else{
try { try {
String sidx = materialPagination.getSidx(); String sidx = materialPagination.getSidx();
// MaterialEntity materialEntity = new MaterialEntity();
MaterialVoMobileEntity materialEntity = new MaterialVoMobileEntity(); MaterialVoMobileEntity materialEntity = new MaterialVoMobileEntity();
Field declaredField = materialEntity.getClass().getDeclaredField(sidx); Field declaredField = materialEntity.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true); declaredField.setAccessible(true);

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.annotation.JsonProperty;
import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.permission.service.AuthorizeService; import jnpf.permission.service.AuthorizeService;
import jnpf.reservoirarea.entity.ReservoirareaEntity; import jnpf.reservoirarea.entity.ReservoirareaEntity;
@ -266,11 +267,26 @@ public class ReservoirareaServiceImpl extends ServiceImpl<ReservoirareaMapper, R
}else{ }else{
try { try {
String sidx = reservoirareaPagination.getSidx(); String sidx = reservoirareaPagination.getSidx();
ReservoirareaEntity reservoirareaEntity = new ReservoirareaEntity(); MobileReservoirareaLIstVo istVo = new MobileReservoirareaLIstVo();
Field declaredField = reservoirareaEntity.getClass().getDeclaredField(sidx); Field[] declaredFields = istVo.getClass().getDeclaredFields();
declaredField.setAccessible(true); Boolean isValue=false;
String value = declaredField.getAnnotation(TableField.class).value(); for (int i = 0; i < declaredFields.length; i++) {
reservoirareaQueryWrapper="asc".equals(reservoirareaPagination.getSort().toLowerCase())?reservoirareaQueryWrapper.orderByAsc(value):reservoirareaQueryWrapper.orderByDesc(value); Field declaredField = declaredFields[i];
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(JsonProperty.class).value();
if (value.equals(sidx)){
isValue=true;
}
}
if (isValue){
reservoirareaQueryWrapper="asc".equals(reservoirareaPagination.getSort().toLowerCase())?reservoirareaQueryWrapper.orderByAsc(sidx):reservoirareaQueryWrapper.orderByDesc(sidx);
}else {
ReservoirareaEntity reservoirareaEntity = new ReservoirareaEntity();
Field declaredField = reservoirareaEntity.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
reservoirareaQueryWrapper="asc".equals(reservoirareaPagination.getSort().toLowerCase())?reservoirareaQueryWrapper.orderByAsc(value):reservoirareaQueryWrapper.orderByDesc(value);
}
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }

@ -14,6 +14,7 @@ import java.math.BigDecimal;
@Data @Data
public class MobileWareHouseVO { public class MobileWareHouseVO {
/** 主键 */ /** 主键 */
@JsonProperty("id")
private String id; private String id;
/** 仓库类型 **/ /** 仓库类型 **/

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.annotation.JsonProperty;
import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.permission.service.AuthorizeService; import jnpf.permission.service.AuthorizeService;
import jnpf.util.ServletUtil; import jnpf.util.ServletUtil;
@ -265,11 +266,26 @@ public class WareHouseServiceImpl extends ServiceImpl<WareHouseMapper, WareHouse
}else{ }else{
try { try {
String sidx = wareHousePagination.getSidx(); String sidx = wareHousePagination.getSidx();
WareHouseEntity wareHouseEntity = new WareHouseEntity(); MobileWareHouseVO wareHouseEntity = new MobileWareHouseVO();
Field declaredField = wareHouseEntity.getClass().getDeclaredField(sidx); boolean isValue=false;
declaredField.setAccessible(true); Field[] declaredFields = wareHouseEntity.getClass().getDeclaredFields();
String value = declaredField.getAnnotation(TableField.class).value(); for (int i = 0; i < declaredFields.length; i++) {
wareHouseQueryWrapper="asc".equals(wareHousePagination.getSort().toLowerCase())?wareHouseQueryWrapper.orderByAsc(value):wareHouseQueryWrapper.orderByDesc(value); Field declaredField = declaredFields[i];
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(JsonProperty.class).value();
if (value.equals(sidx)){
isValue=true;
}
}
if (isValue){
wareHouseQueryWrapper="asc".equals(wareHousePagination.getSort().toLowerCase())?wareHouseQueryWrapper.orderByAsc(sidx):wareHouseQueryWrapper.orderByDesc(sidx);
}else {
WareHouseEntity wareHouseEntityy = new WareHouseEntity();
Field declaredField = wareHouseEntityy.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
wareHouseQueryWrapper="asc".equals(wareHousePagination.getSort().toLowerCase())?wareHouseQueryWrapper.orderByAsc(value):wareHouseQueryWrapper.orderByDesc(value);
}
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }

@ -3,14 +3,14 @@
<mapper namespace="jnpf.reservoirarea.mapper.ReservoirareaMapper"> <mapper namespace="jnpf.reservoirarea.mapper.ReservoirareaMapper">
<select id="getReservoirareaListData" resultMap="getReservoirareaListDataMap"> <select id="getReservoirareaListData" resultMap="getReservoirareaListDataMap">
SELECT SELECT
* *
FROM FROM
( (
SELECT SELECT
IFNULL( b.`name`, '无对应仓库' ) warehouseName, IFNULL( b.`name`, '无对应仓库' ) warehouseName,
IFNULL( d.item_name, '无对应物料' ) itemName, count( c.material_id ) itemName,
@num1 :=( @num1 :=(
SELECT SELECT
ROUND( ROUND(
IFNULL( IFNULL(
@ -30,8 +30,7 @@
FROM FROM
jg_receiptout_item0 aa jg_receiptout_item0 aa
WHERE WHERE
aa.material_id = c.material_id aa.reservoirarea_id = a.id
AND aa.reservoirarea_id = d.id
AND aa.delete_mark = '0' AND aa.delete_mark = '0'
) outDeliveryNum, ) outDeliveryNum,
@num2 :=( @num2 :=(
@ -55,28 +54,23 @@
jg_receiptin_item0 aa jg_receiptin_item0 aa
WHERE WHERE
aa.reservoirarea_id = a.id aa.reservoirarea_id = a.id
AND aa.material_id = c.material_id
AND aa.delete_mark = '0' AND aa.delete_mark = '0'
) inputDeliveryNum, ) inputDeliveryNum,
ROUND( @num2 - @num1, 6 ) wareHouseSum, ROUND( @num2 - @num1, 6 ) wareHouseSum,
a.* a.*
FROM FROM
jg_reservoirarea a jg_reservoirarea a
LEFT JOIN jg_warehouse b ON a.warehouse_id = b.id LEFT JOIN jg_warehouse b ON a.warehouse_id = b.id
AND b.delete_mark = '0' AND b.delete_mark = '0'
LEFT JOIN jg_receiptin_item0 c ON c.reservoirarea_id = a.id LEFT JOIN jg_receiptin_item0 c ON c.reservoirarea_id = a.id
AND c.delete_mark = '0' AND c.delete_mark = '0'
LEFT JOIN jg_material d ON c.material_id = d.id WHERE
AND d.delete_mark = '0' a.delete_mark = '0'
WHERE GROUP BY
a.delete_mark = '0' a.id
GROUP BY ORDER BY
b.`name`, a.areaname
a.id, ) aaa ${ew.customSqlSegment}
d.id
ORDER BY
a.areaname
) aaa ${ew.customSqlSegment}
</select> </select>
<resultMap id="getReservoirareaListDataMap" type="jnpf.reservoirarea.model.reservoirarea.MobileReservoirareaLIstVo"> <resultMap id="getReservoirareaListDataMap" type="jnpf.reservoirarea.model.reservoirarea.MobileReservoirareaLIstVo">
@ -100,7 +94,7 @@
<result property="minimum" column="minimum"/> <result property="minimum" column="minimum"/>
<!--计量单位--> <!--计量单位-->
<result property="unit" column="unit"/> <result property="unit" column="unit"/>
<!--仓库物料种类--> <!--仓库物料种类数量-->
<result property="itemName" column="itemName" /> <result property="itemName" column="itemName" />
<!--仓库总量--> <!--仓库总量-->
<result property="wareHouseSum" column="wareHouseSum"/> <result property="wareHouseSum" column="wareHouseSum"/>

@ -8,7 +8,7 @@
FROM FROM
( (
SELECT SELECT
IFNULL( c.item_name, "无物料" ) itemName, count( b.material_id ) itemName,
@num1 :=( @num1 :=(
SELECT SELECT
ROUND( ROUND(
@ -30,7 +30,6 @@
jg_receiptout_item0 aa jg_receiptout_item0 aa
WHERE WHERE
aa.material_id = b.material_id aa.material_id = b.material_id
AND aa.warehouse_id = a.id
AND aa.delete_mark = '0' AND aa.delete_mark = '0'
) outDeliveryNum, ) outDeliveryNum,
@num2 :=( @num2 :=(
@ -54,7 +53,6 @@
jg_receiptin_item0 aa jg_receiptin_item0 aa
WHERE WHERE
aa.warehouse_id = a.id aa.warehouse_id = a.id
AND aa.material_id = b.material_id
AND aa.delete_mark = '0' AND aa.delete_mark = '0'
) inputDeliveryNum, ) inputDeliveryNum,
ROUND( @num2 - @num1, 6 ) wareHouseSum, ROUND( @num2 - @num1, 6 ) wareHouseSum,
@ -64,14 +62,11 @@
jg_warehouse a jg_warehouse a
LEFT JOIN jg_receiptin_item0 b ON a.id = b.warehouse_id LEFT JOIN jg_receiptin_item0 b ON a.id = b.warehouse_id
AND b.delete_mark = '0' AND b.delete_mark = '0'
LEFT JOIN jg_material c ON b.material_id = c.id
AND c.delete_mark = '0'
LEFT JOIN base_organize d ON a.company_code = d.F_Id LEFT JOIN base_organize d ON a.company_code = d.F_Id
WHERE WHERE
a.delete_mark = '0' a.delete_mark = '0'
GROUP BY GROUP BY
a.id, a.id
c.id
ORDER BY ORDER BY
a.id a.id
) aaa ${ew.customSqlSegment} ) aaa ${ew.customSqlSegment}

Loading…
Cancel
Save