QuoteScript_Template.gtm 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import com.dderp.common.api.BusinessExecutor
  2. import com.dderp.common.datas.ERPModule
  3. import com.dderp.common.entity.base.ScriptMapResult
  4. import com.dderp.common.entity.order.PrintOrder
  5. import com.dderp.common.entity.product.ProcessOrderQuoteItem
  6. import com.dderp.common.entity.product.ProductInfo
  7. import com.sweetfish.service.RetResult
  8. import org.rex.RMap
  9. import javax.annotation.Resource
  10. /**
  11. * Created by #{userName} on #{createDate}.
  12. * #{productName}报价脚本实现
  13. * @author #{userName}
  14. */
  15. class BE_#{ScriptClassName} implements BusinessExecutor<ProcessOrderQuoteItem, ScriptMapResult> {
  16. @Resource(name = "APP_HOME")
  17. String appHome
  18. String scriptName() {
  19. return "产品[#{productName}]报价脚本"
  20. }
  21. ERPModule module() {
  22. return ERPModule.PRODUCT_QUOTE
  23. }
  24. //参数,注意下面都是示例
  25. //vbegin
  26. //[印工]
  27. double printMoney = 1.123
  28. //[覆膜单价]
  29. double fumoMoney = 2.234
  30. //[封皮价格.规格,联数,开数,印色,单价]
  31. String fpFile = "testTable.json"
  32. //vend
  33. def fpTable = []
  34. void start(long supplierCode) {
  35. fpTable = QT.load(appHome, supplierCode, fpFile)
  36. }
  37. RetResult<ScriptMapResult> execute(ProcessOrderQuoteItem source) {
  38. BigDecimal dMoney = BigDecimal.ZERO
  39. PrintOrder printOrder = source.printOrder
  40. //产品信息,包括部件,部件参数等
  41. ProductInfo productInfo = source.productInfo
  42. //开始报价计算
  43. printOrder.partList.each { orderPart ->
  44. //orderPart即为部件
  45. //获取部件参数示例
  46. String paperSize = orderPart quoteProduct productInfo quoteParameterValue "尺寸"
  47. //获取部件工艺,只有ERP报价系统需要,如果是商城系统,那么工艺会作为参数传入,
  48. }
  49. //返回价格,请修改为对应的价格
  50. RMap map = new RMap()
  51. //基础价,代理价,交易价
  52. map.put("BaseMoney", BigDecimal.ZERO)
  53. map.put("ProxyMoney", BigDecimal.ZERO)
  54. map.put("TotalMoney", dMoney)
  55. return RetResult.<ScriptMapResult> successT().result(new ScriptMapResult(map))
  56. }
  57. }