123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- 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 primaryKey = DbConv.asString(params.primaryKey)
- // 获取 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[primaryKey] != null) {
- // 构建删除条件,添加到 "批量执行(addBatch)" 的缓存中
- remove.where(
- ${camelName(tableName)}.${camelName(primaryKey)}.eq(DbConv.asString(row._origin[primaryKey]))
- ).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(primaryKey)}.eq(DbConv.asString(row._origin[primaryKey]))
- ).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)
- }
- }
|