pangjl vor 4 Jahren
Ursprung
Commit
32150d75f2

+ 5 - 5
src/main/java/com/minpay/shouhuo/invCardManageAction.java

@@ -253,21 +253,21 @@ public class invCardManageAction implements IMINAction {
 		User user = session.getUser();
 		String branchIdSession = user.getBranchId();
 		//只能查本机构的
-		if(!"88888888".equals(branchIdSession)) {
-			branchId = branchIdSession;
-		}
 		MINRowBounds rows = new MINRowBounds(page, limit);
 		//获取当前时间
  		Date currentTime = new Date();
 		Map<String, String> m = new HashMap<String, String>();
 		m.put("equNum", equNum);
 		m.put("datesTime", datesTime);
+		if(!"88888888".equals(branchIdSession)) {
+			branchId = branchIdSession;
+		}else {
+			branchId = "";
+		}
 		m.put("branchId", branchId);
 		List<Map<String, String>> detailList = Service.lookup(IMINDataBaseService.class)
 				.getMybatisMapper(OrderManageMapper.class).selectIncomeDetail(rows, m);
 
-		detailList = Service.lookup(IFormatService.class)
-							.formatCurrency(detailList, "sumAllAmout", "sumCostAmout", "sumProAmout", "sumWXAmout", "sumZFAmout","sumCZAmout");
 		//返回数据
 		res.set(IMINBusinessConstant.F_PAGING_LAY, detailList);
 		res.set(IMINBusinessConstant.F_PAGING_COUNT, rows.getCount());

+ 48 - 147
src/main/resources/com/minpay/db/table/own/mapper/OrderManageMapper.xml

@@ -103,137 +103,40 @@
 	</select>
 
 	<select id="selectIncomeDetail" resultType="hashmap" parameterType="java.util.Map">
-		SELECT succtime, branchId, equNum, SUM(allAmout) sumAllAmout,
-		 		SUM(costAmout) sumCostAmout, SUM(proAmout) sumProAmout, SUM(wxAmout) sumWXAmout,
-		 		SUM(zfAmout) sumZFAmout, SUM(czAmout) sumCZAmout
-		FROM(
-			SELECT SUBSTR(vp.PIF_SUCCTIME, 1, 8) 	succtime,
-				vp.PIF_RCVCSTNO 			branchId,
-				ve.VEQ_MACHINE_NO 			equNum,
-				SUM(vd.VOD_AMOUNT)		allAmout,
-				SUM(vr.VCI_COST_PRICE)		costAmout,
-				SUM(vd.VOD_AMOUNT)-SUM(vr.VCI_COST_PRICE)	proAmout,
-				SUM(vd.VOD_AMOUNT)		wxAmout,
-				'0.00'				zfAmout,
-				'0.00'				czAmout,
-				PIF_PAYTYPE			payType
-			FROM vm_payment_inf vp, vm_order_details vd, vm_pro_equ_rel vr, vm_equipment_inf ve
-			WHERE vp.PIF_TRANFLOWNO = vd.VOD_ORDER_ID
-			AND vd.VOD_PRO_EQU_REL_ID = vr.VCI_ID
-			AND vr.VCI_EQUIPMENT_ID = ve.VEQ_ID
-			AND vp.PIF_STATUS = '1'
-			AND vp.PIF_PAYTYPE = '91'
-			AND VOD_IS_WINNING != '00'
-			GROUP BY vp.PIF_RCVCSTNO, SUBSTR(PIF_SUCCTIME, 1, 8), ve.VEQ_MACHINE_NO
-			UNION
-			SELECT SUBSTR(vp.PIF_SUCCTIME, 1, 8) 	succtime,
-				vp.PIF_RCVCSTNO			branchId,
-				ve.VEQ_MACHINE_NO 		equNum,
-				SUM(vd.VOD_AMOUNT)		allAmout,
-				SUM(vr.VCI_COST_PRICE)		costAmout,
-				SUM(vd.VOD_AMOUNT)-SUM(vr.VCI_COST_PRICE)	proAmout,
-				'0.00'				wxAmout,
-				SUM(vd.VOD_AMOUNT)		zfAmout,
-				'0.00'				czAmout,
-				PIF_PAYTYPE			payType
-			FROM vm_payment_inf vp, vm_order_details vd, vm_pro_equ_rel vr, vm_equipment_inf ve
-			WHERE vp.PIF_TRANFLOWNO = vd.VOD_ORDER_ID
-			AND vd.VOD_PRO_EQU_REL_ID = vr.VCI_ID
-			AND vr.VCI_EQUIPMENT_ID = ve.VEQ_ID
-			AND vp.PIF_STATUS = '1'
-			AND vp.PIF_PAYTYPE = '92'
-			AND VOD_IS_WINNING != '00'
-			GROUP BY vp.PIF_RCVCSTNO, SUBSTR(PIF_SUCCTIME, 1, 8), ve.VEQ_MACHINE_NO
-			UNION
-			SELECT SUBSTR(vp.PIF_SUCCTIME, 1, 8) 	succtime,
-				vp.PIF_RCVCSTNO 			branchId,
-				ve.VEQ_MACHINE_NO 		equNum,
-				SUM(vd.VOD_AMOUNT)		allAmout,
-				SUM(vr.VCI_COST_PRICE)		costAmout,
-				SUM(vd.VOD_AMOUNT)-SUM(vr.VCI_COST_PRICE)	proAmout,
-				'0.00'				wxAmout,
-				'0.00'				zfAmout,
-				SUM(vd.VOD_AMOUNT)		czAmout,
-				PIF_PAYTYPE			payType
-			FROM vm_payment_inf vp, vm_order_details vd, vm_pro_equ_rel vr, vm_equipment_inf ve
-			WHERE vp.PIF_TRANFLOWNO = vd.VOD_ORDER_ID
-			AND vd.VOD_PRO_EQU_REL_ID = vr.VCI_ID
-			AND vr.VCI_EQUIPMENT_ID = ve.VEQ_ID
-			AND vp.PIF_STATUS = '1'
-			AND vp.PIF_TYPE = '99'
-			AND VOD_IS_WINNING != '00'
-			GROUP BY vp.PIF_RCVCSTNO, SUBSTR(PIF_SUCCTIME, 1, 8), ve.VEQ_MACHINE_NO
-			UNION
-			SELECT SUBSTR(vp.PIF_SUCCTIME, 1, 8) 	succtime,
-			vp.PIF_RCVCSTNO 			branchId,
-			ve.VEQ_MACHINE_NO 			equNum,
-			SUM(vd.VOD_AMOUNT)		allAmout,
-			'0.00'					costAmout,
-			SUM(vd.VOD_AMOUNT)		proAmout,
-			SUM(vd.VOD_AMOUNT)		wxAmout,
-			'0.00'				zfAmout,
-			'0.00'				czAmout,
-			PIF_PAYTYPE			payType
-			FROM vm_payment_inf vp, vm_order_details vd, vm_pro_equ_rel vr, vm_equipment_inf ve
-			WHERE vp.PIF_TRANFLOWNO = vd.VOD_ORDER_ID
-			AND vd.VOD_PRO_EQU_REL_ID = vr.VCI_ID
-			AND vr.VCI_EQUIPMENT_ID = ve.VEQ_ID
-			AND vp.PIF_STATUS = '1'
-			AND vp.PIF_PAYTYPE = '91'
-			AND VOD_IS_WINNING = '00'
-			GROUP BY vp.PIF_RCVCSTNO, SUBSTR(PIF_SUCCTIME, 1, 8), ve.VEQ_MACHINE_NO
-			UNION
-			SELECT SUBSTR(vp.PIF_SUCCTIME, 1, 8) 	succtime,
-			vp.PIF_RCVCSTNO			branchId,
-			ve.VEQ_MACHINE_NO 		equNum,
-			SUM(vd.VOD_AMOUNT)		allAmout,
-			'0.00'					costAmout,
-			SUM(vd.VOD_AMOUNT)		proAmout,
-			'0.00'				wxAmout,
-			SUM(vd.VOD_AMOUNT)		zfAmout,
-			'0.00'				czAmout,
-			PIF_PAYTYPE			payType
-			FROM vm_payment_inf vp, vm_order_details vd, vm_pro_equ_rel vr, vm_equipment_inf ve
-			WHERE vp.PIF_TRANFLOWNO = vd.VOD_ORDER_ID
-			AND vd.VOD_PRO_EQU_REL_ID = vr.VCI_ID
-			AND vr.VCI_EQUIPMENT_ID = ve.VEQ_ID
-			AND vp.PIF_STATUS = '1'
-			AND vp.PIF_PAYTYPE = '92'
-			AND VOD_IS_WINNING = '00'
-			GROUP BY vp.PIF_RCVCSTNO, SUBSTR(PIF_SUCCTIME, 1, 8), ve.VEQ_MACHINE_NO
-			UNION
-			SELECT SUBSTR(vp.PIF_SUCCTIME, 1, 8) 	succtime,
-			vp.PIF_RCVCSTNO 			branchId,
-			ve.VEQ_MACHINE_NO 		equNum,
-			SUM(vd.VOD_AMOUNT)		allAmout,
-			'0.00'					costAmout,
-			SUM(vd.VOD_AMOUNT)		proAmout,
-			'0.00'				wxAmout,
-			'0.00'				zfAmout,
-			SUM(vd.VOD_AMOUNT)		czAmout,
-			PIF_PAYTYPE			payType
-			FROM vm_payment_inf vp, vm_order_details vd, vm_pro_equ_rel vr, vm_equipment_inf ve
-			WHERE vp.PIF_TRANFLOWNO = vd.VOD_ORDER_ID
-			AND vd.VOD_PRO_EQU_REL_ID = vr.VCI_ID
-			AND vr.VCI_EQUIPMENT_ID = ve.VEQ_ID
-			AND vp.PIF_STATUS = '1'
-			AND vp.PIF_TYPE = '99'
-			AND VOD_IS_WINNING = '00'
-			GROUP BY vp.PIF_RCVCSTNO, SUBSTR(PIF_SUCCTIME, 1, 8), ve.VEQ_MACHINE_NO
-		) vv
-		where 1=1
+		SELECT
+		ROUND(SUM(vod.VOD_AMOUNT),2) 'sumAllAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE='00',vod.VOD_PRO_NUMS*vper.VCI_COST_PRICE,'0')),2)+ROUND(SUM(IF(vod.VOD_PRO_TYPE='01'AND vod.VOD_IS_WINNING ='01',vod.VOD_PRO_NUMS*vper.VCI_COST_PRICE,'0')),2) 'sumCostAmout',
+		ROUND(SUM(vod.VOD_AMOUNT),2)-ROUND(SUM(IF(vod.VOD_PRO_TYPE='00',vod.VOD_PRO_NUMS*vper.VCI_COST_PRICE,'0')),2)-ROUND(SUM(IF(vod.VOD_PRO_TYPE='01'AND vod.VOD_IS_WINNING ='01',vod.VOD_PRO_NUMS*vper.VCI_COST_PRICE,'0')),2) 'sumProAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='91',vod.VOD_AMOUNT,'0')),2)'sumWXAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='92',vod.VOD_AMOUNT,'0')),2)'sumZFAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='01',vod.VOD_AMOUNT,'0')),2)'sumZHAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='02',vod.VOD_AMOUNT,'0')),2)'sumYFKAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='03',vod.VOD_AMOUNT,'0')),2)'sumWYAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='04',vod.VOD_AMOUNT,'0')),2)'sumKJAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE!='02'AND voi.VOI_PAY_MODE ='93',vod.VOD_AMOUNT,'0')),2)'sumQBAmout',
+		ROUND(SUM(IF(vod.VOD_PRO_TYPE ='02',voi.VOI_ORDER_AMT,'0')),2)'sumCZAmout',
+		vei.VEQ_ID 'equNum',
+		vei.VEQ_BRANCHID 'branchId',
+		vod.VOD_CREATE_TIME 'succtime'
+		FROM vm_order_details vod
+		LEFT JOIN vm_pro_equ_rel vper
+		ON vper.VCI_ID = vod.VOD_PRO_EQU_REL_ID
+		LEFT JOIN vm_equipment_inf vei
+		ON vei.VEQ_ID = vper.VCI_EQUIPMENT_ID
+		LEFT JOIN vm_order_inf voi
+		ON vod.VOD_ORDER_ID = voi.VOI_ID
+		WHERE voi.VOI_STATE IN(80,00)
 		<if test="branchId != null and branchId != ''">
-			and branchId = #{branchId,jdbcType=VARCHAR}
+			AND voi.VOI_BRANCHID = #{branchId,jdbcType=VARCHAR}
 		</if>
 		<if test="equNum != null and equNum != ''">
-			and equNum = #{equNum,jdbcType=VARCHAR}
+			AND vei.VEQ_ID = #{equNum,jdbcType=VARCHAR}
 		</if>
 		<if test="datesTime != null and datesTime != ''">
-			and succtime between substr((#{datesTime, jdbcType=VARCHAR}),1,8)
-			and substr((#{datesTime, jdbcType=VARCHAR}),12,19)
+			AND substr(vod.VOD_CREATE_TIME,1,8) BETWEEN SUBSTR((#{datesTime, jdbcType=VARCHAR}),1,8)
+			AND SUBSTR((#{datesTime, jdbcType=VARCHAR}),12,19)
 		</if>
-		GROUP BY succtime, branchId, equNum
-		ORDER BY succtime DESC
+		GROUP BY vei.VEQ_ID
 	</select>
 	<!--	总订单数-->
 	<select id="selectCountOrderNum" resultType="java.lang.String" parameterType="java.util.Map">
@@ -243,51 +146,49 @@
 	</select>
 	<!--	累计收入-->
 	<select id="selectCountIncome" resultType="java.lang.String" parameterType="java.util.Map">
-		select IFNULL(CAST(SUM(PIF_ORDERAMOUT) AS DECIMAL(15,2)), 0.00)
-		from vm_payment_inf, vm_order_inf
-		where PIF_STATUS = '1'
-		and (PIF_PAYTYPE in ('91', '92') or PIF_TRANSTYPE = '00' or PIF_TRANSTYPE = '10')
-		and PIF_TRANFLOWNO = VOI_ID
+		SELECT IFNULL(ROUND(SUM(vod.VOD_AMOUNT),2), 0.00)
+		FROM vm_order_details vod
+		left join vm_order_inf voi on voi.VOI_ID = vod.VOD_ORDER_ID
+		left join vm_pro_equ_rel vper on vper.VCI_ID = vod.VOD_PRO_EQU_REL_ID
+		WHERE voi.VOI_STATE IN(80,00)
 		<if test="nowDate != null and nowDate != ''">
-				and substr(PIF_SUCCTIME,1,8) = #{nowDate,jdbcType=VARCHAR}
+			and substr(vod.VOD_CREATE_TIME,1,8) = #{nowDate,jdbcType=VARCHAR}
 		</if>
 		<if test="yesDate != null and yesDate != ''">
-			and substr(PIF_SUCCTIME,1,8) = #{yesDate,jdbcType=VARCHAR}
+			and substr(vod.VOD_CREATE_TIME,1,8) = #{yesDate,jdbcType=VARCHAR}
 		</if>
 		<if test="weekDate != null and weekDate != ''">
-			and substr(PIF_SUCCTIME,1,8) >= #{weekDate,jdbcType=VARCHAR}
+			and substr(vod.VOD_CREATE_TIME,1,8) >= #{weekDate,jdbcType=VARCHAR}
 		</if>
 		<if test="branchId != null and branchId != ''">
-			AND	VOI_BRANCHID  = #{branchId,jdbcType=VARCHAR}
+			AND	voi.VOI_BRANCHID  = #{branchId,jdbcType=VARCHAR}
 		</if>
 		<if test="checkDate != null and checkDate != ''">
-			AND substr(PIF_SUCCTIME,1,8) between substr((#{checkDate, jdbcType=VARCHAR}),1,8)
+			AND substr(vod.VOD_CREATE_TIME,1,8) between substr((#{checkDate, jdbcType=VARCHAR}),1,8)
 			AND substr((#{checkDate, jdbcType=VARCHAR}),12,19)
 		</if>
 	</select>
 	<!--成本-->
 	<select id="selectPredictIncome" resultType="java.lang.String" parameterType="java.util.Map">
-		SELECT IFNULL(CAST(SUM(VCI_COST_PRICE) AS DECIMAL(15,2)), 0.00)
-		FROM vm_order_details a
-		join vm_order_inf vo on vo.VOI_ID = a.VOD_ORDER_ID
-		join vm_payment_inf b on PIF_TRANFLOWNO = VOD_ORDER_ID
-		left join vm_pro_equ_rel c on c.VCI_ID = a.VOD_PRO_EQU_REL_ID
-		WHERE PIF_STATUS = '1'
-		and VOD_IS_WINNING != '00'
+		SELECT IFNULL(ROUND(SUM(IF(vod.VOD_PRO_TYPE='00',vod.VOD_PRO_NUMS*vper.VCI_COST_PRICE,'0')),2)+ROUND(SUM(IF(vod.VOD_PRO_TYPE='01'AND vod.VOD_IS_WINNING ='01',vod.VOD_PRO_NUMS*vper.VCI_COST_PRICE,'0')),2), 0.00)
+		FROM vm_order_details vod
+		left join vm_order_inf voi on voi.VOI_ID = vod.VOD_ORDER_ID
+		left join vm_pro_equ_rel vper on vper.VCI_ID = vod.VOD_PRO_EQU_REL_ID
+		WHERE voi.VOI_STATE IN(80,00)
 		<if test="nowDate != null and nowDate != ''">
-			and substr(PIF_SUCCTIME,1,8) = #{nowDate,jdbcType=VARCHAR}
+			and substr(vod.VOD_CREATE_TIME,1,8) = #{nowDate,jdbcType=VARCHAR}
 		</if>
 		<if test="yesDate != null and yesDate != ''">
-			and substr(PIF_SUCCTIME,1,8) = #{yesDate,jdbcType=VARCHAR}
+			and substr(vod.VOD_CREATE_TIME,1,8) = #{yesDate,jdbcType=VARCHAR}
 		</if>
 		<if test="weekDate != null and weekDate != ''">
-			and substr(PIF_SUCCTIME,1,8) >= #{weekDate,jdbcType=VARCHAR}
+			and substr(vod.VOD_CREATE_TIME,1,8) >= #{weekDate,jdbcType=VARCHAR}
 		</if>
 		<if test="branchId != null and branchId != ''">
-			AND	VOI_BRANCHID  = #{branchId,jdbcType=VARCHAR}
+			AND	voi.VOI_BRANCHID  = #{branchId,jdbcType=VARCHAR}
 		</if>
 		<if test="checkDate != null and checkDate != ''">
-			AND substr(PIF_SUCCTIME,1,8) between substr((#{checkDate, jdbcType=VARCHAR}),1,8)
+			AND substr(vod.VOD_CREATE_TIME,1,8) between substr((#{checkDate, jdbcType=VARCHAR}),1,8)
 			AND substr((#{checkDate, jdbcType=VARCHAR}),12,19)
 		</if>
 	</select>