AssetsCalculateEqptDataMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  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.dayou.mapper.AssetsCalculateEqptDataMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.dayou.entity.AssetsCalculateEqptData">
  6. <result column="id" property="id" />
  7. <result column="create_time" property="createTime" />
  8. <result column="update_time" property="updateTime" />
  9. <result column="delete_status" property="deleteStatus" />
  10. <result column="assets_calculate_id" property="assetsCalculateId" />
  11. <result column="sort_id" property="sortId" />
  12. <result column="equipment_name" property="equipmentName" />
  13. <result column="manufacturer" property="manufacturer" />
  14. <result column="model" property="model" />
  15. <result column="purchase_date" property="purchaseDate" />
  16. <result column="activation_date" property="activationDate" />
  17. <result column="storage_location" property="storageLocation" />
  18. <result column="quantity" property="quantity" />
  19. <result column="unit_of_measurement" property="unitOfMeasurement" />
  20. <result column="book_original_value" property="bookOriginalValue" />
  21. <result column="book_net_value" property="bookNetValue" />
  22. <result column="equipment_type" property="equipmentType" />
  23. </resultMap>
  24. <!-- 通用查询结果列 -->
  25. <sql id="Base_Column_List">
  26. id,
  27. create_time,
  28. update_time,
  29. delete_status,
  30. assets_calculate_id, sort_id, equipment_name, manufacturer, model, purchase_date, activation_date, storage_location, quantity, unit_of_measurement, original_value, net_value, equipment_type, equipment_type_detail
  31. </sql>
  32. <!--获取是否有进口设备-->
  33. <select id="hasImportedEquipment" resultType="java.lang.Integer">
  34. SELECT COUNT(id)
  35. FROM assets_calculate_eqpt_data
  36. WHERE assets_calculate_id = #{calculateId}
  37. AND equipment_type = '进口设备'
  38. AND delete_status = 0
  39. </select>
  40. <!--根据测算表id获取所有机器设备导入的数据-->
  41. <select id="getAllByAssetsCalculateId" resultType="com.dayou.entity.AssetsCalculateEqptData">
  42. SELECT id, assets_calculate_id, sort_id, equipment_name, manufacturer, model, purchase_date, activation_date,
  43. storage_location, quantity, unit_of_measurement, book_original_value, book_net_value, equipment_type, remark,
  44. create_time, update_time, delete_status, taxed_unit_price, (tax_rate / 100) AS taxRate, economic_service_life,
  45. (direct_observation_depreciation_rate / 100) AS directObservationDepreciationRate, valuation_method, inquiry_basis, inquiry_location, price,
  46. (freight_and_miscellaneous_fee_rate / 100) AS freightAndMiscellaneousFeeRate, (base_rate / 100) AS baseRate, (installation_rate / 100) AS installationRate,
  47. usage_situation
  48. FROM assets_calculate_eqpt_data
  49. WHERE delete_status = 0
  50. AND assets_calculate_id = #{calculateId}
  51. <if test="equipmentType != null and equipmentType != ''">
  52. AND equipment_type = #{equipmentType}
  53. </if>
  54. ORDER BY sort_id
  55. </select>
  56. <!--分页查询导入的机器设备测算数据-->
  57. <select id="getDataPage" resultType="com.dayou.entity.AssetsCalculateEqptData">
  58. SELECT id, assets_calculate_id, sort_id, equipment_name, manufacturer, model, purchase_date, activation_date,
  59. storage_location, quantity, unit_of_measurement, book_original_value, book_net_value, equipment_type, remark,
  60. create_time, update_time, delete_status, taxed_unit_price, tax_rate, economic_service_life,
  61. direct_observation_depreciation_rate, valuation_method, inquiry_basis, inquiry_location, price,
  62. freight_and_miscellaneous_fee_rate, base_rate, installation_rate, usage_situation
  63. FROM assets_calculate_eqpt_data
  64. WHERE delete_status = 0
  65. AND assets_calculate_id = #{dto.calculateId}
  66. <if test="dto != null and dto.sortId != null">
  67. AND sort_id = #{dto.sortId}
  68. </if>
  69. <if test="dto != null and dto.equipmentType != null">
  70. AND equipment_type = #{dto.equipmentType}
  71. </if>
  72. <if test="dto != null and dto.equipmentName != null">
  73. AND equipment_name LIKE CONCAT('%', #{dto.equipmentName}, '%')
  74. </if>
  75. <if test="dto != null and dto.eqptNameFilters.size() > 0">
  76. AND equipment_name IN
  77. <foreach item="item" collection="dto.eqptNameFilters" open="(" separator="," close=")">
  78. #{item}
  79. </foreach>
  80. </if>
  81. <if test="dto != null and dto.modelFilters.size() > 0">
  82. AND model IN
  83. <foreach item="item" collection="dto.modelFilters" open="(" separator="," close=")">
  84. #{item}
  85. </foreach>
  86. </if>
  87. <if test="dto != null and dto.purchaseDateFilters.size() > 0">
  88. AND purchase_date IN
  89. <foreach item="item" collection="dto.purchaseDateFilters" open="(" separator="," close=")">
  90. #{item}
  91. </foreach>
  92. </if>
  93. <if test="dto != null and dto.activationDateFilters.size() > 0">
  94. AND activation_date IN
  95. <foreach item="item" collection="dto.activationDateFilters" open="(" separator="," close=")">
  96. #{item}
  97. </foreach>
  98. </if>
  99. ORDER BY sort_id
  100. </select>
  101. <!--根据测算表id删除-->
  102. <delete id="deleteDataByCalculateId">
  103. UPDATE assets_calculate_eqpt_data
  104. SET delete_status = 1
  105. WHERE delete_status = 0
  106. AND assets_calculate_id = #{calculateId}
  107. </delete>
  108. <!--分页查询进口设备信息-->
  109. <select id="getImpDataPage" resultType="com.dayou.vo.AssetsCalculateEqptImpDataVO">
  110. SELECT data.sort_id,
  111. data.equipment_name,
  112. data.model,
  113. data.purchase_date,
  114. data.activation_date,
  115. data.quantity,
  116. data.unit_of_measurement,
  117. data.book_original_value,
  118. data.manufacturer,
  119. impData.id,
  120. data.id AS eqptDataId,
  121. impData.ppi,
  122. impData.pricing_basis,
  123. impData.central_parity_rate,
  124. impData.tariff_rate,
  125. impData.tariff_rate_picture,
  126. impData.import_vat_rate,
  127. impData.bank_charges_rate,
  128. impData.foreign_transaction_rate,
  129. impData.product_code,
  130. impData.currency,
  131. impData.address,
  132. impData.transaction_method,
  133. impData.contract_amount,
  134. impData.contract_signing_date,
  135. impData.destination_port,
  136. impData.original_price
  137. FROM assets_calculate_eqpt_data AS data
  138. LEFT JOIN assets_calculate_eqpt_imp_data AS impData ON impData.eqpt_data_id = data.id AND impData.delete_status = 0
  139. WHERE data.delete_status = 0
  140. AND data.equipment_type = #{dto.equipmentType}
  141. AND assets_calculate_id = #{dto.calculateId}
  142. <if test="dto != null and dto.sortId != null">
  143. AND sort_id = #{dto.sortId}
  144. </if>
  145. <if test="dto != null and dto.equipmentName">
  146. AND equipment_name LIKE CONCAT('%', #{dto.equipmentName}, '%')
  147. </if>
  148. <if test="dto != null and dto.eqptNameFilters.size() > 0">
  149. AND equipment_name IN
  150. <foreach item="item" collection="dto.eqptNameFilters" open="(" separator="," close=")">
  151. #{item}
  152. </foreach>
  153. </if>
  154. <if test="dto != null and dto.modelFilters.size() > 0">
  155. AND model IN
  156. <foreach item="item" collection="dto.modelFilters" open="(" separator="," close=")">
  157. #{item}
  158. </foreach>
  159. </if>
  160. <if test="dto != null and dto.purchaseDateFilters.size() > 0">
  161. AND purchase_date IN
  162. <foreach item="item" collection="dto.purchaseDateFilters" open="(" separator="," close=")">
  163. #{item}
  164. </foreach>
  165. </if>
  166. <if test="dto != null and dto.activationDateFilters.size() > 0">
  167. AND activation_date IN
  168. <foreach item="item" collection="dto.activationDateFilters" open="(" separator="," close=")">
  169. #{item}
  170. </foreach>
  171. </if>
  172. ORDER BY data.sort_id
  173. </select>
  174. <!--查询进口设备信息集合-->
  175. <select id="getImpDataList" resultType="com.dayou.vo.AssetsCalculateEqptImpDataVO">
  176. SELECT data.sort_id,
  177. data.equipment_name,
  178. data.model,
  179. data.purchase_date,
  180. data.activation_date,
  181. data.quantity,
  182. data.unit_of_measurement,
  183. data.book_original_value,
  184. data.manufacturer,
  185. impData.id,
  186. data.id AS eqptDataId,
  187. impData.ppi,
  188. impData.pricing_basis,
  189. impData.central_parity_rate,
  190. (impData.tariff_rate / 100) AS tariffRate,
  191. impData.tariff_rate_picture,
  192. (impData.import_vat_rate / 100) AS importVatRate,
  193. (impData.bank_charges_rate / 100) AS bankChargesRate,
  194. (impData.foreign_transaction_rate / 100) AS foreignTransactionRate,
  195. impData.product_code,
  196. impData.currency,
  197. impData.address,
  198. impData.transaction_method,
  199. impData.contract_amount,
  200. impData.contract_signing_date,
  201. impData.destination_port,
  202. impData.original_price
  203. FROM assets_calculate_eqpt_data AS data
  204. LEFT JOIN assets_calculate_eqpt_imp_data AS impData ON impData.eqpt_data_id = data.id AND impData.delete_status = 0
  205. WHERE data.delete_status = 0
  206. AND data.equipment_type = '进口设备'
  207. AND assets_calculate_id = #{calculateId}
  208. ORDER BY data.sort_id
  209. </select>
  210. <!--根据id更新机器设备测算数据单价-->
  211. <update id="updateDataPrice">
  212. UPDATE assets_calculate_eqpt_data
  213. SET price = #{price}
  214. WHERE delete_status = 0
  215. AND id = #{id}
  216. </update>
  217. <!--更新机器设备进口设备数据-->
  218. <update id="updateImpData">
  219. UPDATE assets_calculate_eqpt_imp_data
  220. SET ppi = #{data.ppi},
  221. pricing_basis = #{data.pricingBasis},
  222. central_parity_rate = #{data.centralParityRate},
  223. tariff_rate = #{data.tariffRate},
  224. tariff_rate_picture = #{data.tariffRatePicture},
  225. import_VAT_rate = #{data.importVATRate},
  226. bank_charges_rate = #{data.bankChargesRate},
  227. foreign_transaction_rate = #{data.foreignTransactionRate},
  228. product_code = #{data.productCode},
  229. currency = #{data.currency},
  230. address = #{data.address},
  231. transaction_method = #{data.transactionMethod},
  232. contract_amount = #{data.contractAmount},
  233. contract_signing_date = #{data.contractSigningDate},
  234. destination_port = #{data.destinationPort},
  235. original_price = #{data.originalPrice}
  236. WHERE delete_status = 0
  237. AND id = #{data.id}
  238. AND eqpt_data_id = #{data.eqptDataId}
  239. </update>
  240. <!--新增机器设备进口设备数据-->
  241. <insert id="addImpData">
  242. INSERT INTO assets_calculate_eqpt_imp_data(id, eqpt_data_id, ppi, pricing_basis, central_parity_rate, tariff_rate, import_VAT_rate, bank_charges_rate, foreign_transaction_rate, product_code, currency, address, transaction_method, contract_amount, contract_signing_date, destination_port, original_price, tariff_rate_picture)
  243. VALUE (NULL,#{data.eqptDataId},#{data.ppi},#{data.pricingBasis},#{data.centralParityRate},#{data.tariffRate},#{data.importVATRate},#{data.bankChargesRate},#{data.foreignTransactionRate},#{data.productCode},#{data.currency},#{data.address},#{data.transactionMethod},#{data.contractAmount},#{data.contractSigningDate},#{data.destinationPort},#{data.originalPrice}, #{data.tariffRatePicture})
  244. </insert>
  245. <!--分页查询非标设备信息-->
  246. <select id="getNonSDataPage" resultType="com.dayou.vo.AssetsCalculateEqptNonsDataVO">
  247. SELECT data.sort_id,
  248. data.equipment_name,
  249. data.model,
  250. data.purchase_date,
  251. data.activation_date,
  252. data.quantity,
  253. data.unit_of_measurement,
  254. data.book_original_value,
  255. data.book_net_value,
  256. data.manufacturer,
  257. nonsData.id,
  258. data.id AS eqptDataId,
  259. nonsData.eqpt_code,
  260. nonsData.affiliated_system,
  261. nonsData.main_material_Cost,
  262. nonsData.main_material_cost_rate,
  263. nonsData.main_purchased_parts_cost,
  264. nonsData.cost_profit_ratio,
  265. nonsData.sales_tax_rate,
  266. nonsData.design_fee_rate,
  267. nonsData.VAT_rate,
  268. nonsData.nons_eqpt_value,
  269. nonsData.material_1,
  270. nonsData.material_2,
  271. nonsData.material_1_quantity,
  272. nonsData.material_2_quantity,
  273. nonsData.material_1_use_ratio,
  274. nonsData.material_2_use_ratio,
  275. nonsData.material_1_price,
  276. nonsData.material_2_price
  277. FROM assets_calculate_eqpt_data AS data
  278. LEFT JOIN assets_calculate_eqpt_nons_data AS nonsData ON nonsData.delete_status = 0 AND nonsData.eqpt_data_id = data.id
  279. WHERE data.delete_status = 0
  280. AND data.equipment_type = #{dto.equipmentType}
  281. AND assets_calculate_id = #{dto.calculateId}
  282. <if test="dto != null and dto.sortId != null">
  283. AND sort_id = #{dto.sortId}
  284. </if>
  285. <if test="dto != null and dto.equipmentName">
  286. AND equipment_name LIKE CONCAT('%', #{dto.equipmentName}, '%')
  287. </if>
  288. <if test="dto != null and dto.eqptNameFilters.size() > 0">
  289. AND equipment_name IN
  290. <foreach item="item" collection="dto.eqptNameFilters" open="(" separator="," close=")">
  291. #{item}
  292. </foreach>
  293. </if>
  294. <if test="dto != null and dto.modelFilters.size() > 0">
  295. AND model IN
  296. <foreach item="item" collection="dto.modelFilters" open="(" separator="," close=")">
  297. #{item}
  298. </foreach>
  299. </if>
  300. <if test="dto != null and dto.purchaseDateFilters.size() > 0">
  301. AND purchase_date IN
  302. <foreach item="item" collection="dto.purchaseDateFilters" open="(" separator="," close=")">
  303. #{item}
  304. </foreach>
  305. </if>
  306. <if test="dto != null and dto.activationDateFilters.size() > 0">
  307. AND activation_date IN
  308. <foreach item="item" collection="dto.activationDateFilters" open="(" separator="," close=")">
  309. #{item}
  310. </foreach>
  311. </if>
  312. ORDER BY data.sort_id
  313. </select>
  314. <!--查询非标设备信息集合-->
  315. <select id="getNonSDataList" resultType="com.dayou.vo.AssetsCalculateEqptNonsDataVO">
  316. SELECT data.sort_id,
  317. data.equipment_name,
  318. data.model,
  319. data.purchase_date,
  320. data.activation_date,
  321. data.quantity,
  322. data.unit_of_measurement,
  323. data.book_original_value,
  324. data.book_net_value,
  325. data.manufacturer,
  326. nonsData.id,
  327. data.id AS eqptDataId,
  328. nonsData.eqpt_code,
  329. nonsData.affiliated_system,
  330. nonsData.main_material_Cost,
  331. (nonsData.main_material_cost_rate / 100) AS mainMaterialCostRate,
  332. nonsData.main_purchased_parts_cost,
  333. (nonsData.cost_profit_ratio / 100) AS costProfitRatio,
  334. (nonsData.sales_tax_rate / 100) AS salesTaxRate,
  335. (nonsData.design_fee_rate / 100) AS designFeeRate,
  336. (nonsData.VAT_rate / 100) AS VATRate,
  337. nonsData.nons_eqpt_value,
  338. nonsData.material_1,
  339. nonsData.material_2,
  340. nonsData.material_1_quantity,
  341. nonsData.material_2_quantity,
  342. (nonsData.material_1_use_ratio / 100) AS material1UseRatio,
  343. (nonsData.material_2_use_ratio / 100) AS material2UseRatio,
  344. nonsData.material_1_price,
  345. nonsData.material_2_price
  346. FROM assets_calculate_eqpt_data AS data
  347. LEFT JOIN assets_calculate_eqpt_nons_data AS nonsData ON nonsData.delete_status = 0 AND nonsData.eqpt_data_id = data.id
  348. WHERE data.delete_status = 0
  349. AND data.equipment_type = '非标设备'
  350. AND assets_calculate_id = #{calculateId}
  351. ORDER BY data.sort_id
  352. </select>
  353. <!--更新机器设备非标设备数据-->
  354. <update id="updateNonSData">
  355. UPDATE assets_calculate_eqpt_nons_data
  356. SET eqpt_data_id = #{data.eqptDataId},
  357. eqpt_code = #{data.eqptCode},
  358. affiliated_system = #{data.affiliatedSystem},
  359. main_material_Cost = #{data.mainMaterialCost},
  360. main_material_cost_rate = #{data.mainMaterialCostRate},
  361. main_purchased_parts_cost = #{data.mainPurchasedPartsCost},
  362. cost_profit_ratio = #{data.costProfitRatio},
  363. sales_tax_rate = #{data.salesTaxRate},
  364. design_fee_rate = #{data.designFeeRate},
  365. VAT_rate = #{data.VATRate},
  366. nons_eqpt_value = #{data.nonsEqptValue},
  367. material_1 = #{data.material1},
  368. material_2 = #{data.material2},
  369. material_1_quantity = #{data.material1Quantity},
  370. material_2_quantity = #{data.material2Quantity},
  371. material_1_use_ratio = #{data.material1UseRatio},
  372. material_2_use_ratio = #{data.material2UseRatio},
  373. material_1_price = #{data.material1Price},
  374. material_2_price = #{data.material2Price}
  375. WHERE delete_status = 0
  376. AND id = #{data.id}
  377. AND eqpt_data_id = #{data.eqptDataId}
  378. </update>
  379. <!--新增机器设备非标设备数据-->
  380. <insert id="addNonSData">
  381. INSERT INTO assets_calculate_eqpt_nons_data (id, eqpt_data_id, eqpt_code, affiliated_system, main_material_Cost, main_material_cost_rate, main_purchased_parts_cost,
  382. cost_profit_ratio, sales_tax_rate, design_fee_rate, VAT_rate, nons_eqpt_value, material_1, material_2, material_1_quantity, material_2_quantity,
  383. material_1_use_ratio, material_2_use_ratio, material_1_price, material_2_price)
  384. VALUE (NULL, #{data.eqptDataId}, #{data.eqptCode}, #{data.affiliatedSystem}, #{data.mainMaterialCost}, #{data.mainMaterialCostRate}, #{data.mainPurchasedPartsCost},
  385. #{data.costProfitRatio}, #{data.salesTaxRate}, #{data.designFeeRate}, #{data.VATRate}, #{data.nonsEqptValue},
  386. #{data.material1},#{data.material2},#{data.material1Quantity},#{data.material2Quantity},#{data.material1UseRatio},#{data.material2UseRatio},#{data.material1Price},#{data.material2Price})
  387. </insert>
  388. <!--获取机器设备作价table设备名称的筛选条件-->
  389. <select id="getEqptTableNameFilters" resultType="com.dayou.vo.TableFilterVO">
  390. SELECT DISTINCT equipment_name AS filter,
  391. (SELECT COUNT(equipment_name) FROM assets_calculate_eqpt_data AS subquery WHERE subquery.equipment_name = mainquery.equipment_name AND subquery.delete_status = 0) AS count
  392. FROM assets_calculate_eqpt_data AS mainquery
  393. WHERE delete_status = 0
  394. AND assets_calculate_id = #{calculateId}
  395. <if test="eqptType != null and eqptType != ''">
  396. AND equipment_type = #{eqptType}
  397. </if>
  398. <if test="equipmentName != null and equipmentName != ''">
  399. AND equipment_name LIKE CONCAT('%', #{equipmentName}, '%')
  400. </if>
  401. </select>
  402. <!--获取机器设备作价table型号的筛选条件-->
  403. <select id="getEqptTableModelFilters" resultType="com.dayou.vo.TableFilterVO">
  404. SELECT DISTINCT model AS filter,
  405. (SELECT COUNT(model) FROM assets_calculate_eqpt_data AS subquery WHERE subquery.model = mainquery.model AND subquery.delete_status = 0) AS count
  406. FROM assets_calculate_eqpt_data AS mainquery
  407. WHERE delete_status = 0
  408. AND assets_calculate_id = #{calculateId}
  409. <if test="eqptType != null and eqptType != ''">
  410. AND equipment_type = #{eqptType}
  411. </if>
  412. <if test="model != null and model != ''">
  413. AND model LIKE CONCAT('%', #{model}, '%')
  414. </if>
  415. </select>
  416. <!--获取机器设备作价table购买日期的筛选条件-->
  417. <select id="getEqptTablePurchaseDateFilters" resultType="com.dayou.vo.TableFilterVO">
  418. SELECT DISTINCT purchase_date AS filter,
  419. (SELECT COUNT(purchase_date) FROM assets_calculate_eqpt_data AS subquery WHERE subquery.purchase_date = mainquery.purchase_date AND subquery.delete_status = 0) AS count
  420. FROM assets_calculate_eqpt_data AS mainquery
  421. WHERE delete_status = 0
  422. AND assets_calculate_id = #{calculateId}
  423. <if test="eqptType != null and eqptType != ''">
  424. AND equipment_type = #{eqptType}
  425. </if>
  426. <if test="purchaseDate != null and purchaseDate != ''">
  427. AND purchase_date = #{purchaseDate}
  428. </if>
  429. </select>
  430. <!--获取机器设备作价table启用日期的筛选条件-->
  431. <select id="getEqptTableActivationDateFilters" resultType="com.dayou.vo.TableFilterVO">
  432. SELECT DISTINCT activation_date AS filter,
  433. (SELECT COUNT(activation_date) FROM assets_calculate_eqpt_data AS subquery WHERE subquery.activation_date = mainquery.activation_date AND subquery.delete_status = 0) AS count
  434. FROM assets_calculate_eqpt_data AS mainquery
  435. WHERE delete_status = 0
  436. AND assets_calculate_id = #{calculateId}
  437. <if test="eqptType != null and eqptType != ''">
  438. AND equipment_type = #{eqptType}
  439. </if>
  440. <if test="activationDate != null and activationDate != ''">
  441. AND activation_date = #{activationDate}
  442. </if>
  443. </select>
  444. </mapper>