Commit dfbb9913 by wangchunyang

统计及文件合并整理

parent d1e4d2c9
package com.scpyun.platform.jilinsscgsdp.service.impl;
import com.scpyun.base.bean.Page;
import com.scpyun.base.core.annotation.Api;
import com.scpyun.base.core.annotation.ApiOperation;
import com.scpyun.base.core.exception.CustomException;
import com.scpyun.base.core.utils.UUIDUtil;
import com.scpyun.base.db.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api("请假类型管理")
@Service("keyDmLeaveType")
public class KeyDmLeaveTypeServiceImpl {
@Autowired
private CommonService commonService;
private static final String SUCCESS = "success";
private final String namespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmLeaveType.";
@ApiOperation(value = "查询请假类型", desc = "查询请假类型")
public List<Map<String, Object>> findList(Map<String,Object> map) {
if (map == null) {
map = new HashMap<>();
}
return commonService.findList(namespace + "findList", map);
}
@ApiOperation(value = "查询请假类型列表", desc = "分页查询请假类型")
public Page<Map<String, Object>> selectList(Page<Map<String,Object>> map) {
if (map == null) {
map = new Page<>();
}
return commonService.findPage(namespace + "selectList", map);
}
@ApiOperation(value = "保存请假类型", desc = "新增或修改请假类型")
public String save(Map<String, Object> map) {
if (map == null) {
throw new CustomException("参数不能为空");
}
Object id = map.get("id");
if (id == null || String.valueOf(id).trim().isEmpty()) {
// 新增
map.put("id", UUIDUtil.getUUID());
if (commonService.insert(namespace + "insert", map) != 1) {
throw new CustomException("保存失败");
}
} else {
// 修改
int affected = commonService.update(namespace + "update", map);
if (affected < 0) {
throw new CustomException("保存失败");
}
}
return SUCCESS;
}
@ApiOperation(value = "删除请假类型", desc = "逻辑删除请假类型")
public String delete(Map<String, Object> map) {
if (map == null || map.get("id") == null) {
throw new CustomException("参数不能为空");
}
int affected = commonService.update(namespace + "delete", map);
if (affected < 0) {
throw new CustomException("删除失败");
}
return SUCCESS;
}
}
package com.scpyun.platform.jilinsscgsdp.service.impl;
import com.scpyun.base.bean.Page;
import com.scpyun.base.core.annotation.Api;
import com.scpyun.base.core.annotation.ApiOperation;
import com.scpyun.base.core.exception.CustomException;
import com.scpyun.base.core.utils.UUIDUtil;
import com.scpyun.base.db.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api("办公用品分类管理")
@Service("keyDmMaterialCategory")
public class KeyDmMaterialCategoryServiceImpl {
@Autowired
private CommonService commonService;
private static final String SUCCESS = "success";
private final String namespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterialCategory.";
@ApiOperation(value = "查询办公用品分类", desc = "查询办公用品分类")
public List<Map<String, Object>> findList(Map<String, Object> map) {
if (map == null) {
map = new HashMap<>();
}
return commonService.findList(namespace + "findList", map);
}
@ApiOperation(value = "查询办公用品分类列表", desc = "分页查询办公用品分类")
public Page<Map<String, Object>> selectList(Page<Map<String, Object>> map) {
if (map == null) {
map = new Page<>();
}
return commonService.findPage(namespace + "selectList", map);
}
@ApiOperation(value = "保存办公用品分类", desc = "新增或修改办公用品分类")
public String save(Map<String, Object> map) {
if (map == null) {
throw new CustomException("参数不能为空");
}
Object id = map.get("id");
if (id == null || String.valueOf(id).trim().isEmpty()) {
// 新增
map.put("id", UUIDUtil.getUUID());
if (commonService.insert(namespace + "insert", map) != 1) {
throw new CustomException("保存失败");
}
} else {
// 修改
int affected = commonService.update(namespace + "update", map);
if (affected < 0) {
throw new CustomException("保存失败");
}
}
return SUCCESS;
}
@ApiOperation(value = "删除办公用品分类", desc = "逻辑删除办公用品分类")
public String delete(Map<String, Object> map) {
if (map == null || map.get("id") == null) {
throw new CustomException("参数不能为空");
}
int affected = commonService.update(namespace + "delete", map);
if (affected < 0) {
throw new CustomException("删除失败");
}
return SUCCESS;
}
}
package com.scpyun.platform.jilinsscgsdp.service.impl;
import com.scpyun.base.bean.Page;
import com.scpyun.base.core.annotation.Api;
import com.scpyun.base.core.annotation.ApiOperation;
import com.scpyun.base.core.exception.CustomException;
import com.scpyun.base.core.utils.UUIDUtil;
import com.scpyun.base.db.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.scpyun.platform.jilinsscgsdp.utils.MaterialFileListener;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List;
import java.io.IOException;
@Api("办公用品管理")
@Service("keyDmMaterial")
public class KeyDmMaterialServiceImpl {
@Autowired
private CommonService commonService;
private static final String SUCCESS = "success";
private final String namespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterial.";
@ApiOperation(value = "查询办公用品列表", desc = "分页查询办公用品")
public Page<Map<String, Object>> selectList(Page<Map<String, Object>> map) {
if (map == null) {
map = new Page<>();
}
return commonService.findPage(namespace + "selectList", map);
}
@ApiOperation(value = "保存办公用品", desc = "新增或修改办公用品")
public String save(Map<String, Object> map) {
if (map == null) {
throw new CustomException("参数不能为空");
}
Object id = map.get("id");
if (id == null || String.valueOf(id).trim().isEmpty()) {
// 新增
map.put("id", UUIDUtil.getUUID());
if (commonService.insert(namespace + "insert", map) != 1) {
throw new CustomException("保存失败");
}
} else {
// 修改
int affected = commonService.update(namespace + "update", map);
if (affected < 0) {
throw new CustomException("保存失败");
}
}
return SUCCESS;
}
@ApiOperation(value = "删除办公用品", desc = "逻辑删除办公用品")
public String delete(Map<String, Object> map) {
if (map == null || map.get("id") == null) {
throw new CustomException("参数不能为空");
}
int affected = commonService.update(namespace + "delete", map);
if (affected < 0) {
throw new CustomException("删除失败");
}
return SUCCESS;
}
@ApiOperation(value = "导入物料", desc = "解析 Excel 导入物料信息")
public Map<String, Object> importExcel(Map<String, Object> map, MultipartFile file) {
Map<String, Object> result = new HashMap<>();
try {
MaterialFileListener listener = new MaterialFileListener(commonService, namespace, map);
EasyExcel.read(file.getInputStream(), com.scpyun.platform.jilinsscgsdp.bean.entity.MaterialImp.class, listener).sheet().headRowNumber(1).doRead();
result = listener.getResult();
} catch (IOException e) {
throw new CustomException("导入失败");
}
return result;
}
@ApiOperation(value = "导入模板下载", desc = "下载物料导入模板")
public void templateDownload(Map<String, Object> map, HttpServletResponse response) {
response.setContentType("application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
try {
String fileName = URLEncoder.encode("物料导入模板", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
response.setHeader("filename", fileName + ".xlsx");
response.setHeader("Access-Control-Expose-Headers", "filename,Content-Disposition");
String tpl = "keyMaterialImp.xlsx";
Resource resource = new ClassPathResource(tpl);
InputStream is = resource.getInputStream();
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(is).excelType(ExcelTypeEnum.XLSX).build();
excelWriter.finish();
} catch (Exception e) {
throw new CustomException("模板下载失败");
}
}
}
package com.scpyun.platform.jilinsscgsdp.service.impl;
import com.scpyun.base.core.annotation.Api;
import com.scpyun.base.core.annotation.ApiOperation;
import com.scpyun.base.core.exception.CustomException;
import com.scpyun.base.db.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api("人员分类权限管理")
@Service("keyDmUserCategoryPermission")
public class KeyDmUserCategoryPermissionServiceImpl {
@Autowired
private CommonService commonService;
private static final String SUCCESS = "success";
private final String namespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmUserCategoryPermission.";
@ApiOperation(value = "查询人员分类权限列表", desc = "根据分类ID查询权限列表")
public List<Map<String, Object>> selectList(Map<String, Object> map) {
if (map == null) {
map = new HashMap<>();
}
return commonService.findList(namespace + "selectList", map);
}
@ApiOperation(value = "保存人员分类权限", desc = "保存分类的权限配置,先删除旧权限再插入新权限")
public String save(Map<String, Object> map) {
if (map == null) {
throw new CustomException("参数不能为空");
}
Object categoryId = map.get("category_id");
if (categoryId == null || String.valueOf(categoryId).trim().isEmpty()) {
throw new CustomException("分类ID不能为空");
}
// 先删除该分类的所有权限
commonService.delete(namespace + "deleteByCategoryId", map);
// 插入新权限
Object permissions = map.get("permissions");
if (permissions != null && permissions instanceof List) {
List<Map<String, Object>> permissionList = (List<Map<String, Object>>) permissions;
for (Map<String, Object> permission : permissionList) {
permission.put("category_id", categoryId);
if (commonService.insert(namespace + "insert", permission) != 1) {
throw new CustomException("保存权限失败");
}
}
}
return SUCCESS;
}
}
...@@ -29,8 +29,8 @@ public class MaterialFileListener extends AnalysisEventListener<MaterialImp> { ...@@ -29,8 +29,8 @@ public class MaterialFileListener extends AnalysisEventListener<MaterialImp> {
private List<String> errInfo = new ArrayList<>(); private List<String> errInfo = new ArrayList<>();
private String catgoryNamespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterialCategory."; // private String catgoryNamespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterialCategory.";
private String materialNamespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterial."; // private String materialNamespace = "com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterial.";
private Map<String, Map> catgoryMap = new HashMap<>(); private Map<String, Map> catgoryMap = new HashMap<>();
private Map<String, Map> materialMap = new HashMap<>(); private Map<String, Map> materialMap = new HashMap<>();
...@@ -44,12 +44,12 @@ public class MaterialFileListener extends AnalysisEventListener<MaterialImp> { ...@@ -44,12 +44,12 @@ public class MaterialFileListener extends AnalysisEventListener<MaterialImp> {
this.param = param; this.param = param;
user = (Map<String, Object>) param.get("_user"); user = (Map<String, Object>) param.get("_user");
//获取所有办公用品分类信息 //获取所有办公用品分类信息
List<Map<String, Object>> catgoryLisit = commonService.findList(catgoryNamespace + "findList", param); List<Map<String, Object>> catgoryLisit = commonService.findList(namespace + "findMaterialCategoryList", param);
catgoryLisit.forEach(item -> { catgoryLisit.forEach(item -> {
catgoryMap.put(String.valueOf(item.get("category_name")), item); catgoryMap.put(String.valueOf(item.get("category_name")), item);
}); });
//获取所有办公用品信息,后续根据办公用品编码来判断更新或插入 //获取所有办公用品信息,后续根据办公用品编码来判断更新或插入
List<Map<String, Object>> materialLisit = commonService.findList(materialNamespace + "findList", param); List<Map<String, Object>> materialLisit = commonService.findList(namespace + "findMaterialList", param);
for (int i = 0; i < materialLisit.size(); i++) { for (int i = 0; i < materialLisit.size(); i++) {
Map<String, Object> item = materialLisit.get(i); Map<String, Object> item = materialLisit.get(i);
materialMap.put(String.valueOf(item.get("material_code")), item); materialMap.put(String.valueOf(item.get("material_code")), item);
...@@ -139,11 +139,11 @@ public class MaterialFileListener extends AnalysisEventListener<MaterialImp> { ...@@ -139,11 +139,11 @@ public class MaterialFileListener extends AnalysisEventListener<MaterialImp> {
row.put("_user", user); row.put("_user", user);
if (exists == null) { if (exists == null) {
row.put("id", UUIDUtil.getUUID()); row.put("id", UUIDUtil.getUUID());
commonService.insert(namespace + "insert", row); commonService.insert(namespace + "insertMaterial", row);
insertCount.incrementAndGet(); insertCount.incrementAndGet();
} else { } else {
row.put("id", exists.get("id")); row.put("id", exists.get("id"));
commonService.update(namespace + "update", row); commonService.update(namespace + "updateMaterial", row);
updateCount.incrementAndGet(); updateCount.incrementAndGet();
} }
} catch (Exception ex) { } catch (Exception ex) {
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//oos.juyouhx.com//DTD Mapper 3.0//EN" "http://oss.juyouhx.com/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.scpyun.platform.standard.jilinsscgsdp.keyDmLeaveType" name="请假类型管理">
<!-- 查询列表 -->
<select id="selectList" parameterType="page" resultType="map">
SELECT
id,
type_code,
type_name,
remark,
base_days,
max_days_per_year,
allow_half_day,
allow_hourly,
require_attachment,
attachment_types,
attachment_desc,
need_approval,
approval_flow_id,
status,
is_used,
create_by,
create_time,
update_by,
update_time,
order_no
FROM jl_key_dm_leave_type
<where>
AND is_used = 1
<if test="params.type_name != null and params.type_name != ''">
AND type_name LIKE CONCAT('%', #{params.type_name}, '%')
</if>
<if test="params.type_code != null and params.type_code != ''">
AND type_code LIKE CONCAT('%', #{params.type_code}, '%')
</if>
</where>
ORDER BY order_no ASC, create_time DESC
</select>
<!-- 查询列表 -->
<select id="findList" parameterType="map" resultType="map">
SELECT
id,
type_code,
type_name,
remark,
base_days,
max_days_per_year,
allow_half_day,
allow_hourly,
require_attachment,
attachment_types,
attachment_desc,
need_approval,
approval_flow_id,
status,
is_used,
create_by,
create_time,
update_by,
update_time,
order_no
FROM jl_key_dm_leave_type
<where>
AND is_used = 1
<if test="type_name != null and type_name != ''">
AND type_name LIKE CONCAT('%', #{type_name}, '%')
</if>
<if test="type_code != null and type_code != ''">
AND type_code LIKE CONCAT('%', #{type_code}, '%')
</if>
</where>
ORDER BY order_no ASC, create_time DESC
</select>
<!-- 新增 -->
<insert id="insert" parameterType="map">
INSERT INTO jl_key_dm_leave_type(
id,
type_code,
type_name,
remark,
base_days,
max_days_per_year,
allow_half_day,
allow_hourly,
require_attachment,
attachment_types,
attachment_desc,
need_approval,
approval_flow_id,
status,
is_used,
create_by,
create_time,
order_no
) VALUES (
#{id},
#{type_code},
#{type_name},
#{remark},
#{base_days},
#{max_days_per_year},
COALESCE(#{allow_half_day}, 1),
COALESCE(#{allow_hourly}, 1),
COALESCE(#{require_attachment}, 0),
#{attachment_types},
#{attachment_desc},
COALESCE(#{need_approval}, 1),
#{approval_flow_id},
COALESCE(#{status}, 1),
1,
#{_user.id},
NOW(),
#{order_no}
)
</insert>
<!-- 修改 -->
<update id="update" parameterType="map">
UPDATE jl_key_dm_leave_type
SET
type_code = #{type_code},
type_name = #{type_name},
remark = #{remark},
base_days = #{base_days},
max_days_per_year = #{max_days_per_year},
allow_half_day = #{allow_half_day},
allow_hourly = #{allow_hourly},
require_attachment = #{require_attachment},
attachment_types = #{attachment_types},
attachment_desc = #{attachment_desc},
need_approval = #{need_approval},
approval_flow_id = #{approval_flow_id},
status = #{status},
order_no = #{order_no},
update_by = #{_user.id},
update_time = NOW()
WHERE id = #{id}
</update>
<!-- 删除(逻辑删除) -->
<update id="delete" parameterType="map">
UPDATE jl_key_dm_leave_type
SET
is_used = 0,
update_by = #{_user.id},
update_time = NOW()
WHERE id = #{id}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//oos.juyouhx.com//DTD Mapper 3.0//EN" "http://oss.juyouhx.com/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterialCategory" name="办公用品分类管理">
<!-- 查询列表 -->
<select id="selectList" parameterType="page" resultType="map">
SELECT
id,
category_code,
category_name,
parent_id,
level,
full_path,
remark,
status,
is_used,
create_by,
create_time,
update_by,
update_time,
order_no
FROM jl_key_dm_material_category
<where>
AND is_used = 1
<if test="params.category_name != null and params.category_name != ''">
AND category_name LIKE CONCAT('%', #{params.category_name}, '%')
</if>
<if test="params.category_code != null and params.category_code != ''">
AND category_code LIKE CONCAT('%', #{params.category_code}, '%')
</if>
</where>
ORDER BY order_no ASC, create_time DESC
</select>
<!-- 查询列表 -->
<select id="findList" parameterType="map" resultType="map">
SELECT
id,
category_code,
category_name,
parent_id,
level,
full_path,
remark,
status,
is_used,
create_by,
create_time,
update_by,
update_time,
order_no
FROM jl_key_dm_material_category
<where>
AND is_used = 1
<if test="category_name != null and category_name != ''">
AND category_name LIKE CONCAT('%', #{category_name}, '%')
</if>
<if test="category_code != null and category_code != ''">
AND category_code LIKE CONCAT('%', #{category_code}, '%')
</if>
</where>
ORDER BY order_no ASC, create_time DESC
</select>
<!-- 新增 -->
<insert id="insert" parameterType="map">
INSERT INTO jl_key_dm_material_category(
id,
category_code,
category_name,
parent_id,
level,
full_path,
remark,
status,
is_used,
create_by,
create_time,
order_no
) VALUES (
#{id},
#{category_code},
#{category_name},
COALESCE(#{parent_id}, 0),
COALESCE(#{level}, 1),
#{full_path},
#{remark},
COALESCE(#{status}, 1),
1,
#{_user.id},
NOW(),
#{order_no}
)
</insert>
<!-- 修改 -->
<update id="update" parameterType="map">
UPDATE jl_key_dm_material_category
SET
category_code = #{category_code},
category_name = #{category_name},
parent_id = #{parent_id},
level = #{level},
full_path = #{full_path},
remark = #{remark},
status = #{status},
order_no = #{order_no},
update_by = #{_user.id},
update_time = NOW()
WHERE Id = #{id}
</update>
<!-- 删除(逻辑删除) -->
<update id="delete" parameterType="map">
UPDATE jl_key_dm_material_category
SET
is_used = 0,
update_by = #{_user.id},
update_time = NOW()
WHERE Id = #{id}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//oos.juyouhx.com//DTD Mapper 3.0//EN" "http://oss.juyouhx.com/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.scpyun.platform.standard.jilinsscgsdp.keyDmMaterial" name="办公用品管理">
<!-- 查询列表 -->
<select id="selectList" parameterType="page" resultType="map">
SELECT
m.id,
m.category_id,
m.material_code,
m.material_name,
m.material_spec,
m.unit,
m.unit_price,
m.supplier_name,
m.storage_location,
m.min_stock,
m.max_stock,
m.status,
m.can_borrow,
m.material_desc,
m.is_used,
m.create_by,
m.create_time,
m.update_by,
m.update_time,
m.order_no,
c.category_Name AS category_name
FROM jl_key_dm_material m
LEFT JOIN jl_key_dm_material_category c ON c.Id = m.category_id
<where>
AND m.is_used = 1
<if test="params.material_name != null and params.material_name != ''">
AND m.material_name LIKE CONCAT('%', #{params.material_name}, '%')
</if>
<if test="params.material_code != null and params.material_code != ''">
AND m.material_code LIKE CONCAT('%', #{params.material_code}, '%')
</if>
<if test="params.category_id != null and params.category_id != ''">
AND m.category_id = #{params.category_id}
</if>
</where>
ORDER BY m.order_no ASC, m.create_time DESC
</select>
<!-- 查询列表 -->
<select id="findList" parameterType="map" resultType="map">
SELECT
m.id,
m.category_id,
m.material_code,
m.material_name,
m.material_spec,
m.unit,
m.unit_price,
m.supplier_name,
m.storage_location,
m.min_stock,
m.max_stock,
m.status,
m.can_borrow,
m.material_desc,
m.is_used,
m.create_by,
m.create_time,
m.update_by,
m.update_time,
m.order_no,
c.category_Name AS category_name
FROM jl_key_dm_material m
LEFT JOIN jl_key_dm_material_category c ON c.Id = m.category_id
<where>
AND m.is_used = 1
<if test="material_name != null and material_name != ''">
AND m.material_name LIKE CONCAT('%', #{material_name}, '%')
</if>
<if test="material_code != null and material_code != ''">
AND m.material_code LIKE CONCAT('%', #{material_code}, '%')
</if>
<if test="category_id != null and category_id != ''">
AND m.category_id = #{category_id}
</if>
</where>
ORDER BY m.order_no ASC, m.create_time DESC
</select>
<!-- 新增 -->
<insert id="insert" parameterType="map">
INSERT INTO jl_key_dm_material(
id,
category_id,
material_code,
material_name,
material_spec,
unit,
unit_price,
supplier_name,
storage_location,
min_stock,
max_stock,
status,
can_borrow,
material_desc,
is_used,
create_by,
create_time,
order_no
) VALUES (
#{id},
#{category_id},
#{material_code},
#{material_name},
#{material_spec},
#{unit},
#{unit_price},
#{supplier_name},
#{storage_location},
#{min_stock},
#{max_stock},
COALESCE(#{status}, 1),
COALESCE(#{can_borrow}, 1),
#{material_desc},
1,
#{_user.id},
NOW(),
#{order_no}
)
</insert>
<!-- 修改 -->
<update id="update" parameterType="map">
UPDATE jl_key_dm_material
SET
category_id = #{category_id},
material_code = #{material_code},
material_name = #{material_name},
material_spec = #{material_spec},
unit = #{unit},
unit_price = #{unit_price},
supplier_name = #{supplier_name},
storage_location = #{storage_location},
min_stock = #{min_stock},
max_stock = #{max_stock},
status = #{status},
can_borrow = #{can_borrow},
material_desc = #{material_desc},
order_no = #{order_no},
update_by = #{_user.id},
update_time = NOW()
WHERE id = #{id}
</update>
<!-- 删除(逻辑删除) -->
<update id="delete" parameterType="map">
UPDATE jl_key_dm_material
SET
is_used = 0,
update_by = #{_user.id},
update_time = NOW()
WHERE id = #{id}
</update>
</mapper>
...@@ -5,45 +5,65 @@ ...@@ -5,45 +5,65 @@
<!-- 使用统计:按部门、物料统计领用数量 --> <!-- 使用统计:按部门、物料统计领用数量 -->
<select id="selectUsageStats" parameterType="map" resultType="map"> <select id="selectUsageStats" parameterType="map" resultType="map">
SELECT SELECT
b.department_id, ba.department_id,
b.department_name, ba.department_name,
d.material_id, ad.material_id,
d.material_name, ad.material_name,
SUM(d.apply_quantity) AS total_quantity sum(ad.apply_quantity)-sum(ad.returned_quantity) as total_quantity
FROM jl_key_dm_borrow_application_detail d from jl_key_dm_borrow_application_detail ad
LEFT JOIN jl_key_dm_borrow_application b ON b.id = d.application_id LEFT JOIN jl_key_dm_borrow_application ba on ad.application_id = ba.id
LEFT JOIN jl_key_dm_material m on ad.material_id = m.id
LEFT JOIN sys_office so on so.id = ba.department_id
<where> <where>
AND b.is_used = 1 AND ba.is_used=1 and ad.is_used=1 and ba.approval_status = 9
<if test="params.start != null and params.start != '' and params.end != null and params.end != ''"> <if test="start != null and start != ''">
AND b.create_time BETWEEN #{params.start} AND #{params.end} AND ba.create_time &gt; #{start}
</if> </if>
<if test="params.material != null and params.material != ''"> <if test="end != null and end != ''">
AND (d.material_name LIKE CONCAT('%', #{params.material}, '%') OR d.material_code LIKE CONCAT('%', #{params.material}, '%')) AND ba.create_time &lt; #{end}
</if>
<if test="material != null and material != ''">
AND (ad.material_name LIKE CONCAT('%', #{material}, '%') OR ad.material_code LIKE CONCAT('%', #{material}, '%'))
</if>
<if test="dep != null and dep != ''">
AND ad.department_name LIKE CONCAT('%', #{dep}, '%')
</if> </if>
</where> </where>
GROUP BY b.department_id, b.department_name, d.material_id, d.material_name GROUP BY ba.department_id, ba.department_name, ad.material_id,ad.material_name
ORDER BY total_quantity DESC ORDER BY total_quantity DESC
</select> </select>
<!-- 使用明细 --> <!-- 使用明细 -->
<select id="selectUsageDetails" parameterType="map" resultType="map"> <select id="selectUsageDetails" parameterType="map" resultType="map">
SELECT b.application_no, b.applicant_id, b.applicant_name, b.department_id, b.department_name, SELECT
d.material_id, d.material_code, d.material_name, d.apply_quantity, d.unit, b.create_time ba.applicant_name user_name,
FROM jl_key_dm_borrow_application_detail d ba.department_id,
LEFT JOIN jl_key_dm_borrow_application b ON b.id = d.application_id ba.department_name,
ad.material_id,
ad.material_name,
ad.apply_quantity,
ad.returned_quantity
from jl_key_dm_borrow_application_detail ad
LEFT JOIN jl_key_dm_borrow_application ba on ad.application_id = ba.id
LEFT JOIN jl_key_dm_material m on ad.material_id = m.id
LEFT JOIN sys_office so on so.id = ba.department_id
<where> <where>
AND b.is_used = 1 AND ba.is_used=1 and ad.is_used=1 and ba.approval_status = 9
<if test="params.start != null and params.start != '' and params.end != null and params.end != ''"> <if test="start != null and start != ''">
AND b.create_time BETWEEN #{params.start} AND #{params.end} AND ba.create_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND ba.create_time &lt; #{end}
</if> </if>
<if test="params.material != null and params.material != ''"> <if test="material != null and material != ''">
AND (d.material_name LIKE CONCAT('%', #{params.material}, '%') OR d.material_code LIKE CONCAT('%', #{params.material}, '%')) AND ad.material_id = #{material}
</if> </if>
<if test="params.department != null and params.department != ''"> <if test="department != null and department != ''">
AND b.department_id = #{params.department} AND ba.department_id = #{department}
</if> </if>
</where> </where>
ORDER BY b.create_time DESC GROUP BY ba.department_id, ba.department_name, ad.material_id,ad.material_name
ORDER BY apply_quantity DESC
</select> </select>
<!-- 工作量统计:合并多表数据后按人员统计 --> <!-- 工作量统计:合并多表数据后按人员统计 -->
...@@ -57,19 +77,47 @@ ...@@ -57,19 +77,47 @@
FROM ( FROM (
SELECT l.user_id AS uid, l.user_name AS uname, 1 AS leave_app, 0 AS leave_approve, 0 AS borrow_app, 0 AS inbound_cnt, COALESCE(l.duration,0) AS leave_duration SELECT l.user_id AS uid, l.user_name AS uname, 1 AS leave_app, 0 AS leave_approve, 0 AS borrow_app, 0 AS inbound_cnt, COALESCE(l.duration,0) AS leave_duration
FROM jl_key_dm_leave_application l FROM jl_key_dm_leave_application l
WHERE l.create_time BETWEEN #{params.start} AND #{params.end} <where>
<if test="start != null and start != ''">
AND l.create_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND l.create_time &lt; #{end}
</if>
</where>
UNION ALL UNION ALL
SELECT r.approver_id AS uid, r.approver_name AS uname, 0, CASE WHEN r.approver_result = 1 THEN 1 ELSE 0 END, 0, 0, 0 SELECT r.approver_id AS uid, r.approver_name AS uname, 0, CASE WHEN r.approver_result = 1 THEN 1 ELSE 0 END, 0, 0, 0
FROM jl_key_dm_leave_approval_record r FROM jl_key_dm_leave_approval_record r
WHERE r.approver_time BETWEEN #{params.start} AND #{params.end} <where>
<if test="start != null and start != ''">
AND r.approver_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND r.approver_time &lt; #{end}
</if>
</where>
UNION ALL UNION ALL
SELECT b.applicant_id AS uid, b.applicant_name AS uname, 0, 0, 1, 0, 0 SELECT b.applicant_id AS uid, b.applicant_name AS uname, 0, 0, 1, 0, 0
FROM jl_key_dm_borrow_application b FROM jl_key_dm_borrow_application b
WHERE b.create_time BETWEEN #{params.start} AND #{params.end} <where>
<if test="start != null and start != ''">
AND b.create_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND b.create_time &lt; #{end}
</if>
</where>
UNION ALL UNION ALL
SELECT o.receiver_id AS uid, o.receiver_name AS uname, 0, 0, 0, 1, 0 SELECT o.receiver_id AS uid, o.receiver_name AS uname, 0, 0, 0, 1, 0
FROM jl_key_dm_outbound_record o FROM jl_key_dm_outbound_record o
WHERE o.create_time BETWEEN #{params.start} AND #{params.end} <where>
<if test="start != null and start != ''">
AND o.create_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND o.create_time &lt; #{end}
</if>
</where>
) t ) t
GROUP BY uid, uname GROUP BY uid, uname
ORDER BY leave_applications DESC, borrow_applications DESC ORDER BY leave_applications DESC, borrow_applications DESC
...@@ -78,16 +126,32 @@ ...@@ -78,16 +126,32 @@
<!-- 工作量明细:按类型返回对应明细 --> <!-- 工作量明细:按类型返回对应明细 -->
<select id="selectWorkloadDetails" parameterType="map" resultType="map"> <select id="selectWorkloadDetails" parameterType="map" resultType="map">
<choose> <choose>
<when test="params.type == 'leave'"> <when test="type == 'leave'">
SELECT id, user_id, user_name, start_time, end_time, duration, reason FROM jl_key_dm_leave_application SELECT id, user_id, user_name, start_time, end_time, duration, reason FROM jl_key_dm_leave_application
WHERE user_id = #{params.user_id} AND create_time BETWEEN #{params.start} AND #{params.end} <where>
AND user_id = #{user_id}
<if test="start != null and start != ''">
AND create_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND create_time &lt; #{end}
</if>
</where>
ORDER BY create_time DESC ORDER BY create_time DESC
</when> </when>
<when test="params.type == 'inventory'"> <when test="type == 'inventory'">
SELECT b.application_no, b.applicant_id, b.applicant_name, d.material_name, d.apply_quantity SELECT b.application_no, b.applicant_id, b.applicant_name, d.material_name, d.apply_quantity
FROM jl_key_dm_borrow_application_detail d FROM jl_key_dm_borrow_application_detail d
LEFT JOIN jl_key_dm_borrow_application b ON b.id = d.application_id LEFT JOIN jl_key_dm_borrow_application b ON b.id = d.application_id
WHERE b.applicant_id = #{params.user_id} AND b.create_time BETWEEN #{params.start} AND #{params.end} <where>
b.applicant_id = #{user_id}
<if test="start != null and start != ''">
AND b.create_time &gt; #{start}
</if>
<if test="end != null and end != ''">
AND b.create_time &lt; #{end}
</if>
</where>
ORDER BY b.create_time DESC ORDER BY b.create_time DESC
</when> </when>
<otherwise> <otherwise>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//oos.juyouhx.com//DTD Mapper 3.0//EN" "http://oss.juyouhx.com/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.scpyun.platform.standard.jilinsscgsdp.keyDmUserCategoryPermission" name="人员分类权限管理">
<!-- 查询列表 -->
<select id="selectList" parameterType="map" resultType="map">
SELECT
id,
catgory_id,
permission_mark,
permission_name,
remark,
is_used,
create_by,
create_time,
update_by,
update_time,
order_no
FROM jl_key_dm_user_qx
<where>
AND is_used = 1
<if test="category_id != null and category_id != ''">
AND catgory_id = #{category_id}
</if>
</where>
ORDER BY order_no ASC, create_time DESC
</select>
<!-- 新增 -->
<insert id="insert" parameterType="map">
INSERT INTO jl_key_dm_user_qx(
id,
catgory_id,
permission_mark,
permission_name,
remark,
is_used,
create_by,
create_time,
order_no
) VALUES (
UUID(),
#{category_id},
#{permission_mark},
#{permission_name},
#{remark},
1,
#{_user.id},
NOW(),
#{order_no}
)
</insert>
<!-- 根据分类ID删除 -->
<delete id="deleteByCategoryId" parameterType="map">
DELETE FROM jl_key_dm_user_qx
WHERE catgory_id = #{category_id}
</delete>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论