|
@@ -0,0 +1,136 @@
|
|
|
|
+package ${packagePath}
|
|
|
|
+
|
|
|
|
+import com.yvan.core.DbConv
|
|
|
|
+import com.yvan.data.jdbc.DaoFactory
|
|
|
|
+import com.yvan.model.response.Model
|
|
|
|
+import com.yvan.model.response.ModelOps
|
|
|
|
+import org.slf4j.LoggerFactory
|
|
|
|
+import static com.galaxis.wms.query.Q${camelName1(tableName)}.${camelName(tableName)}
|
|
|
|
+
|
|
|
|
+class ${moduleName} {
|
|
|
|
+
|
|
|
|
+ static def log = LoggerFactory.getLogger(${moduleName}.class)
|
|
|
|
+ static def queryDsl = DaoFactory.getQueryDSL()
|
|
|
|
+ static def mybatis = DaoFactory.getMyBatis(${moduleName}.class)
|
|
|
|
+
|
|
|
|
+ static def query(params) {
|
|
|
|
+ <#if pagination>
|
|
|
|
+ def list = mybatis.queryByPage("query", YvanExt.getQueryByPage(), params)
|
|
|
|
+ <#else>
|
|
|
|
+ def list = mybatis.queryMany("query", params)
|
|
|
|
+ </#if>
|
|
|
|
+ return Model.newSuccess(list)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ static def saveItems(params) {
|
|
|
|
+ long rowEffect = 0
|
|
|
|
+ def primary_key = DbConv.asString(params.primary_key)
|
|
|
|
+
|
|
|
|
+ // 获取 queryDsl 针对某张表的 insert/update/remove 的操作对象
|
|
|
|
+ def insert = queryDsl.insert(${camelName(tableName)}) // insert 操作对象
|
|
|
|
+ def update = queryDsl.update(${camelName(tableName)}) // update 操作对象
|
|
|
|
+ def remove = queryDsl.delete(${camelName(tableName)}) // remove 操作对象
|
|
|
|
+ def i = 0 // 插入行计数
|
|
|
|
+ def u = 0 // 更新行计数
|
|
|
|
+ def d = 0 // 删除行计数
|
|
|
|
+ def msg = "" // 异常提示文本
|
|
|
|
+
|
|
|
|
+ for (def row : params.removeRecords) {
|
|
|
|
+ // 提取 removeRecords 全部删除的数据
|
|
|
|
+ if (row._origin[primary_key] != null) {
|
|
|
|
+ // 构建删除条件,添加到 "批量执行(addBatch)" 的缓存中
|
|
|
|
+ remove.where(
|
|
|
|
+ ${camelName(tableName)}.${camelName(primary_key)}.eq(DbConv.asString(row._origin[primary_key]))
|
|
|
|
+ ).addBatch()
|
|
|
|
+ d++ // 计数
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (def row : params.newRows) {
|
|
|
|
+ // 提取 newRows 全部新加的数据
|
|
|
|
+ // 构建insert的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
|
|
|
|
+ insert
|
|
|
|
+<#if columnList??>
|
|
|
|
+ <#list columnList as column>
|
|
|
|
+ <#switch column.dataType>
|
|
|
|
+ <#case 1>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
|
|
|
|
+ <#break>
|
|
|
|
+ <#case 2>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asInteger(row.${column.columnName}) as Integer)
|
|
|
|
+ <#break>
|
|
|
|
+ <#case 3>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asLong(row.${column.columnName}) as Long)
|
|
|
|
+ <#break>
|
|
|
|
+ <#case 4>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asDate(row.${column.columnName}) as Date)
|
|
|
|
+ <#break>
|
|
|
|
+ <#default>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
|
|
|
|
+ </#switch>
|
|
|
|
+ </#list>
|
|
|
|
+</#if>
|
|
|
|
+ .addBatch()
|
|
|
|
+ i++ // 计数
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (def row : params.modifyRows) {
|
|
|
|
+ // 提取 modifyRows 全部修改的数据
|
|
|
|
+ // 构建update的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
|
|
|
|
+ if (row._origin.dict_value != null) {
|
|
|
|
+ update
|
|
|
|
+<#if columnList??>
|
|
|
|
+ <#list columnList as column>
|
|
|
|
+ <#switch column.dataType>
|
|
|
|
+ <#case 1>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
|
|
|
|
+ <#break>
|
|
|
|
+ <#case 2>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asInteger(row.${column.columnName}) as Integer)
|
|
|
|
+ <#break>
|
|
|
|
+ <#case 3>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asLong(row.${column.columnName}) as Long)
|
|
|
|
+ <#break>
|
|
|
|
+ <#case 4>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asDate(row.${column.columnName}) as Date)
|
|
|
|
+ <#break>
|
|
|
|
+ <#default>
|
|
|
|
+ .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
|
|
|
|
+ </#switch>
|
|
|
|
+ </#list>
|
|
|
|
+</#if>
|
|
|
|
+ .where(
|
|
|
|
+ // row._origin.xxx 就是修改前 xxx 属性的值
|
|
|
|
+ ${camelName(tableName)}.${camelName(primary_key)}.eq(DbConv.asString(row._origin[primary_key]))
|
|
|
|
+ ).addBatch()
|
|
|
|
+ u++ // 计数
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 构建提示语句
|
|
|
|
+ if (i > 0) {
|
|
|
|
+ rowEffect += insert.execute()
|
|
|
|
+ msg += ",插入" + i + "行"
|
|
|
|
+ }
|
|
|
|
+ if (u > 0) {
|
|
|
|
+ rowEffect += update.execute()
|
|
|
|
+ msg += ",更新" + u + "行"
|
|
|
|
+ }
|
|
|
|
+ if (d > 0) {
|
|
|
|
+ rowEffect += remove.execute()
|
|
|
|
+ msg += ",删除" + d + "行"
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (rowEffect <= 0) {
|
|
|
|
+ return ModelOps.newSuccess().setMsg("没有要更新的内容")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 返回前端
|
|
|
|
+ return Model.newSuccess([
|
|
|
|
+ update : u,
|
|
|
|
+ insert : i,
|
|
|
|
+ delete : d,
|
|
|
|
+ rowEffect: rowEffect
|
|
|
|
+ ]).setMsg("保存成功" + msg)
|
|
|
|
+ }
|
|
|
|
+}
|