ProjectCostMapper.xml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.zjugis.business.mapper.ProjectCostMapper">
  4. <update id="updateTravelCost">
  5. UPDATE PROJECT_COST SET TRAVEL_COST=(NVL(TRAVEL_COST,0)+#{travelCost})
  6. WHERE PROJECT_ID=#{projectId} AND COUNT_DATE = to_timestamp(#{firstDayOfMonth,jdbcType=VARCHAR},'YYYY-MM-DD')
  7. </update>
  8. <update id="updateCommonCost">
  9. UPDATE PROJECT_COST SET REIMBURSEMENT_COST=(NVL(REIMBURSEMENT_COST,0)+#{commonCost})
  10. WHERE PROJECT_ID=#{projectId} AND COUNT_DATE = to_timestamp(#{firstDayOfMonth,jdbcType=VARCHAR},'YYYY-MM-DD')
  11. </update>
  12. <update id="updatePaymentCost">
  13. UPDATE PROJECT_COST SET PAYMENT_COST=(NVL(PAYMENT_COST,0)+#{commonCost})
  14. WHERE PROJECT_ID=#{projectId} AND COUNT_DATE = to_timestamp(#{firstDayOfMonth,jdbcType=VARCHAR},'YYYY-MM-DD')
  15. </update>
  16. <select id="calculate" resultType="com.zjugis.business.bean.response.ProjectCostResponse">
  17. SELECT
  18. NVL(SUM(NVL(PROJECT_COST, 0)), 0) AS cost,
  19. NVL(SUM(NVL(TRAVEL_COST, 0)), 0) AS travelCost,
  20. NVL(SUM(NVL(REIMBURSEMENT_COST, 0)), 0) AS reimbursementCost,
  21. NVL(SUM(NVL(SUBCONTRACT_COST, 0)), 0) AS subcontractCost,
  22. NVL(SUM(NVL(OUTSOURCE_COST, 0)), 0) AS outsourceCost,
  23. NVL(SUM(NVL(PAYMENT_COST, 0)), 0) AS paymentCost
  24. FROM PROJECT_AMOUNT
  25. WHERE PROJECT_ID in
  26. <foreach item="id" index="index" collection="params.projectIds" open="(" separator="," close=")">
  27. #{id}
  28. </foreach>
  29. </select>
  30. <select id="pageByMonth" resultType="com.zjugis.business.bean.response.ProjectMonthCostResponse">
  31. SELECT max(OUTPUT_PROGRESS) as outputProgress,sum(VEHICLE_COST) as vehicleCost,sum(LABOR_COST) as laborCost,sum(TRAVEL_COST) as travelCost,sum(REIMBURSEMENT_COST) as reimbursementCost,sum(PAYMENT_COST) as paymentCost,TO_CHAR(P.COUNT_DATE,'YYYY-MM') as countDate FROM PROJECT_COST P
  32. <where>
  33. P.ISVALID = 1
  34. AND P.PROJECT_ID in
  35. <foreach item="id" index="index" collection="params.projectIds" open="(" separator="," close=")">
  36. #{id}
  37. </foreach>
  38. </where>
  39. GROUP BY TO_CHAR(P.COUNT_DATE,'YYYY-MM')
  40. HAVING
  41. (sum(LABOR_COST) + sum(TRAVEL_COST) + sum(REIMBURSEMENT_COST) + sum(PAYMENT_COST)) > 0
  42. ORDER BY
  43. countDate
  44. DESC
  45. </select>
  46. <select id="selectCurMonthProjectIds" resultType="java.lang.String">
  47. SELECT PROJECT_ID FROM PROJECT_COST WHERE COUNT_DATE = to_timestamp(#{date,jdbcType=VARCHAR},'YYYY-MM-DD') and ISVALID = 1 and PROJECT_ID IS NOT NUll
  48. </select>
  49. <select id="calculateList" resultType="com.zjugis.business.bean.response.ProjectCostResponse">
  50. SELECT
  51. PROJECT_ID,
  52. NVL(VEHICLE_COST, 0) AS vehicleCost,
  53. NVL(LABOR_COST, 0) AS laborCost,
  54. NVL(TRAVEL_COST, 0) AS travelCost,
  55. NVL(REIMBURSEMENT_COST, 0) AS reimbursementCost,
  56. NVL(PAYMENT_COST, 0) AS paymentCost
  57. FROM PROJECT_COST
  58. WHERE PROJECT_ID in
  59. <foreach item="id" index="index" collection="params.projectIds" open="(" separator="," close=")">
  60. #{id}
  61. </foreach>
  62. AND ISVALID = 1
  63. </select>
  64. <select id="selectMonthRecordByProject" resultType="com.zjugis.business.bean.entity.ProjectCost">
  65. SELECT * FROM PROJECT_COST WHERE COUNT_DATE = to_timestamp(#{date,jdbcType=VARCHAR},'YYYY-MM-DD') and ISVALID = 1 and PROJECT_ID = #{projectId,jdbcType=VARCHAR}
  66. </select>
  67. </mapper>