Browse Source

外协人员就餐明细表修改

yanliming 4 năm trước cách đây
mục cha
commit
94af5778e1

+ 49 - 71
common/src/main/resources/mapper/base/CanteenDiningRecord.xml

@@ -203,8 +203,8 @@
 
 	<select id="canteenDiningRecordDetailList" parameterType="hashmap" resultType="hashmap">
 
-			SELECT count(a.person_id) as personNum,a.address_ as address,c.name_ as canteenName,c.id_ as id,
-			(SELECT count(z.person_id) from base_canteen_dining_record z WHERE a.address_=z.address_ and  z.category_='2' and z.del_flag=FALSE
+			select a.name_ as canteenName,a.id_ as id,a.address_ as address,
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.device_no = c.device_no and  z.category_='2' and z.del_flag=FALSE
 			<if test="searchParams.isOutsourcer != null">
 				and z.is_outsourcer = #{searchParams.isOutsourcer}
 			</if>
@@ -218,8 +218,8 @@
 					and z.record_time <= #{searchParams.endTime}
 				]]>
 			</if>
-			) as 'lunch',
-			(SELECT count(z.person_id) from base_canteen_dining_record z WHERE a.address_=z.address_ and  z.category_='3' and z.del_flag=FALSE
+			)) as 'lunch',
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.device_no = c.device_no and  z.category_='3' and z.del_flag=FALSE
 			<if test="searchParams.isOutsourcer != null">
 				and z.is_outsourcer = #{searchParams.isOutsourcer}
 			</if>
@@ -233,8 +233,8 @@
 				and z.record_time <= #{searchParams.endTime}
 				]]>
 			</if>
-			) as 'supper',
-			(SELECT count(z.person_id) from base_canteen_dining_record z WHERE a.address_=z.address_ and  z.category_='4' and z.del_flag=FALSE
+			)) as 'supper',
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.device_no = c.device_no and  z.category_='4' and z.del_flag=FALSE
 			<if test="searchParams.isOutsourcer != null">
 				and z.is_outsourcer = #{searchParams.isOutsourcer}
 			</if>
@@ -248,17 +248,27 @@
 				and z.record_time <= #{searchParams.endTime}
 				]]>
 			</if>
-			) as 'nightSnack'
-			FROM base_canteen_info c
-			left join base_canteen_device d on c.id_=d.canteen_id
-			left join base_device_info e on d.device_id=e.id_
-			left join base_canteen_dining_record a on a.device_no=e.device_no
-			left join base_device_info b on a.device_no = b.device_no
-		<where>
-			a.del_flag = false and b.del_flag = false and c.del_flag=false
+			)) as 'nightSnack',
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.device_no = c.device_no and z.del_flag=FALSE
 			<if test="searchParams.isOutsourcer != null">
-				and a.is_outsourcer = #{searchParams.isOutsourcer}
+				and z.is_outsourcer = #{searchParams.isOutsourcer}
+			</if>
+			<if test="searchParams.beginTime != null">
+				<![CDATA[
+					  and z.record_time >= #{searchParams.beginTime}
+					  ]]>
+			</if>
+			<if test="searchParams.endTime != null">
+				<![CDATA[
+					and z.record_time <= #{searchParams.endTime}
+					]]>
 			</if>
+			)) as 'personNum'
+			FROM base_canteen_info a
+			left JOIN base_canteen_device b on a.id_= b.canteen_id
+			left join base_device_info c on c.id_=b.device_id
+		<where>
+			a.del_flag = false and b.del_flag = false and c.del_flag=false
 			<if test="searchParams.beginTime != null">
 				<![CDATA[
                   and a.record_time >= #{searchParams.beginTime}
@@ -269,7 +279,7 @@
                   and a.record_time <= #{searchParams.endTime}
                 ]]>
 			</if>
-			GROUP BY c.id_
+			GROUP BY a.id_
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 			${sort.name} ${sort.order}
@@ -278,19 +288,8 @@
 
 
 	<select id="canteenDiningRecordCompanyList" parameterType="hashmap" resultType="hashmap">
-			select count(c.person_id) as personNum,a.name_ as companyName,a.id_ as companyId,
-			(SELECT count(z.person_id) from base_canteen_dining_record z
-			inner join base_person_info x on z.person_id=x.id_
-			inner join base_company_info y on y.id_= x.company_id
-			WHERE y.id_ = a.id_ and  z.category_='2' and z.del_flag=FALSE
-			<if test="searchParams.companyId != null">
-				<![CDATA[
-					  and y.code_ like #{searchParams.companyId}
-				]]>
-			</if>
-			<if test="searchParams.isOutsourcer != null">
-				and z.is_outsourcer = #{searchParams.isOutsourcer}
-			</if>
+			select a.name_ as companyName,a.id_ as companyId,
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.person_id = b.id_ and  z.category_='2' and z.del_flag=FALSE
 			<if test="searchParams.beginTime != null">
 				<![CDATA[
 					  and z.record_time >= #{searchParams.beginTime}
@@ -301,19 +300,8 @@
 					  and z.record_time <= #{searchParams.endTime}
 					]]>
 			</if>
-			) as 'lunch',
-			(SELECT count(z.person_id) from base_canteen_dining_record z
-			inner join base_person_info x on z.person_id=x.id_
-			inner join base_company_info y on y.id_= x.company_id
-			WHERE y.id_ = a.id_ and  z.category_='3' and z.del_flag=FALSE
-			<if test="searchParams.companyId != null">
-				<![CDATA[
-						  and y.code_ like #{searchParams.companyId}
-					]]>
-			</if>
-			<if test="searchParams.isOutsourcer != null">
-				and z.is_outsourcer = #{searchParams.isOutsourcer}
-			</if>
+			)) as 'lunch',
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.person_id = b.id_ and  z.category_='3' and z.del_flag=FALSE
 			<if test="searchParams.beginTime != null">
 				<![CDATA[
 						  and z.record_time >= #{searchParams.beginTime}
@@ -324,52 +312,42 @@
 						  and z.record_time <= #{searchParams.endTime}
 						]]>
 			</if>
-			) as 'supper',
-			(SELECT count(z.person_id) from base_canteen_dining_record z
-			inner join base_person_info x on z.person_id=x.id_
-			inner join base_company_info y on y.id_= x.company_id
-			WHERE y.id_ = a.id_ and  z.category_='4' and z.del_flag=FALSE
-			<if test="searchParams.companyId != null">
+			)) as 'supper',
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.person_id = b.id_ and  z.category_='4' and z.del_flag=FALSE
+			<if test="searchParams.beginTime != null">
 				<![CDATA[
-							  and y.code_ like #{searchParams.companyId}
-						]]>
+					and z.record_time >= #{searchParams.beginTime}
+				]]>
 			</if>
-			<if test="searchParams.isOutsourcer != null">
-				and z.is_outsourcer = #{searchParams.isOutsourcer}
+			<if test="searchParams.endTime != null">
+				<![CDATA[
+					and z.record_time <= #{searchParams.endTime}
+				]]>
 			</if>
+			)) as 'nightSnack',
+			sum((SELECT count(z.person_id) from base_canteen_dining_record z WHERE z.person_id = b.id_ and z.del_flag=FALSE
 			<if test="searchParams.beginTime != null">
 				<![CDATA[
-							  and z.record_time >= #{searchParams.beginTime}
-							]]>
+						and z.record_time >= #{searchParams.beginTime}
+					]]>
 			</if>
 			<if test="searchParams.endTime != null">
 				<![CDATA[
-							  and z.record_time <= #{searchParams.endTime}
-							]]>
+						and z.record_time <= #{searchParams.endTime}
+					]]>
 			</if>
-			) as 'nightSnack'
+			)) as 'personNum'
 			FROM base_company_info a
 			left join base_person_info b on a.id_=b.company_id
-			left join base_canteen_dining_record c on c.person_id = b.id_
 		<where>
-			a.del_flag = false and b.del_flag = false and c.del_flag=false
+			a.del_flag = false and b.del_flag = false
 			<if test="searchParams.companyId != null">
 				<![CDATA[
                   and a.code_ like #{searchParams.companyId}
                 ]]>
 			</if>
 			<if test="searchParams.isOutsourcer != null">
-				and c.is_outsourcer = #{searchParams.isOutsourcer}
-			</if>
-			<if test="searchParams.beginTime != null">
-				<![CDATA[
-                  and c.record_time >= #{searchParams.beginTime}
-                ]]>
-			</if>
-			<if test="searchParams.endTime != null">
-				<![CDATA[
-                  and c.record_time <= #{searchParams.endTime}
-                ]]>
+				and a.is_outsourcer = #{searchParams.isOutsourcer}
 			</if>
 			GROUP BY a.id_
 		</where>
@@ -454,7 +432,7 @@
             SELECT * FROM base_canteen_dining_record x WHERE x.del_flag = false and x.device_no in
             (SELECT DISTINCT c.device_no FROM base_canteen_info a left join base_canteen_device b on a.id_=b.canteen_id
             inner join base_device_info c on b.device_id=c.id_
-            WHERE a.id_= #{searchParams.id} and a.del_flag = false)
+            WHERE a.id_= #{searchParams.id} and a.del_flag = false and b.del_flag = false and c.del_flag = false)
 		]]>
 		<if test="searchParams.isOutsourcer != null">
 			and x.is_outsourcer = #{searchParams.isOutsourcer}

+ 6 - 10
web/src/main/java/com/jpsoft/shinestar/modules/base/controller/CanteenOutsourcerBalanceController.java

@@ -574,9 +574,9 @@ public class CanteenOutsourcerBalanceController {
 
             Page<Map> page = canteenDiningRecordService.canteenDiningRecordDetailList(searchParams, pageIndex, pageSize, true, sortList);
 
-            List<Map> mapList = new ArrayList<>();
+            List<Map> mapList = page.getResult();
 
-            for (Map map : page) {
+//            for (Map map : page) {
 //                String canteenName ="";
 //                if(map.get("deviceNo")!=null){
 //                    String deviceNo = map.get("deviceNo").toString();
@@ -592,8 +592,8 @@ public class CanteenOutsourcerBalanceController {
 //                    }
 //                }
 //                map.put("canteenName",canteenName);
-                mapList.add(map);
-            }
+//                mapList.add(map);
+//            }
 
             if(exportFlag) {
                 String filePath = canteenExportXls(mapList);
@@ -853,7 +853,7 @@ public class CanteenOutsourcerBalanceController {
             Map<String, Object> searchParams = new HashMap<>();
 
             List<Sort> sortList = new ArrayList<>();
-            sortList.add(new Sort("c.create_time", "desc"));
+            sortList.add(new Sort("a.create_time", "asc"));
 
             if (StringUtils.isNotEmpty(companyId)) {
                 searchParams.put("companyId", "%"+companyId+"%");
@@ -883,11 +883,7 @@ public class CanteenOutsourcerBalanceController {
 
             Page<Map> page = canteenDiningRecordService.canteenDiningRecordCompanyList(searchParams, pageIndex, pageSize, true, sortList);
 
-            List<Map> mapList = new ArrayList<>();
-
-            for (Map map : page) {
-                mapList.add(map);
-            }
+            List<Map> mapList = page.getResult();
 
             if(exportFlag) {
                 String filePath = companyExportXls(mapList);