d81e5c62 张雷

feat(equipment): 添加设备维保记录导出功能

- 新增维保记录导出接口和相关服务方法
- 在 EquipmentMaintainTaskController 中添加 exportXls 方法处理导出请求
- 在 EquipmentMaintainTaskServiceImpl 中实现 getXlsList 方法获取导出数据
- 更新相关实体类和 VO 类以支持新功能
1 个父辈 f4f3a162
正在显示 16 个修改的文件 包含 236 行增加10 行删除
......@@ -202,7 +202,7 @@ public class EquipmentInController {
if ("departIdName".equals(targetFieldName) && srcFieldVal != null) {
return sysDepartVal2KeyMap.getOrDefault(srcFieldVal, "");
} else if ("sparepartName".equals(targetFieldName)) {
String sql2 = "select es.sparepart_name as sparepartName ,es.sparepart_type from equipment_sparepart_supplies as es " +
String sql2 = "select es.sparepart_name as sparepartName ,es.sparepart_type,es.specification from equipment_sparepart_supplies as es " +
"inner join (select sparepart_id from equipment_in_child where in_id = '" + srcFieldVal + "') as tmp on es.id = tmp.sparepart_id";
List<Map<String, Object>> sparePartList = iCommonSqlService.queryForList(sql2);
Map<String, Integer> name2CountMap = new HashMap<>();
......@@ -217,6 +217,22 @@ public class EquipmentInController {
stringBuilder.append(",").append(item.getKey());
}
return stringBuilder.toString().replaceFirst(",", "");
} else if ("specification_dictText".equals(targetFieldName)) {
String sql3 = "select es.sparepart_name as sparepartName ,es.sparepart_type,es.specification from equipment_sparepart_supplies as es " +
"inner join (select sparepart_id from equipment_in_child where in_id = '" + srcFieldVal + "') as tmp on es.id = tmp.sparepart_id";
List<Map<String, Object>> spareCodeList = iCommonSqlService.queryForList(sql3);
Map<String, Integer> code2CountMap = new HashMap<>();
if (spareCodeList != null && !spareCodeList.isEmpty() && spareCodeList.get(0) != null) {
for (Map<String, Object> it : spareCodeList) {
String code = "" + it.get("specification");
code2CountMap.put(code, code2CountMap.getOrDefault(code, 0) + 1);
}
}
StringBuilder stringBuilder = new StringBuilder();
for (Map.Entry<String, Integer> item : code2CountMap.entrySet()) {
stringBuilder.append(",").append(item.getKey());
}
return stringBuilder.toString().replaceFirst(",", "");
} else if ("useByName".equals(targetFieldName)) {
return sysUserVal2KeyMap.getOrDefault(srcFieldVal, "");
} else if ("suppliesWarehouseId_dictText".equals(targetFieldName)) {
......@@ -229,6 +245,9 @@ public class EquipmentInController {
if (StringUtils.isNotEmpty(equipmentInDTO.getSparepartName())) {
equipmentInVOList = equipmentInVOList.stream().filter(item -> item.getSparepartName().contains(equipmentInDTO.getSparepartName())).collect(Collectors.toList());
}
if (StringUtils.isNotEmpty(equipmentInDTO.getSpecification())) {
equipmentInVOList = equipmentInVOList.stream().filter(item -> item.getSpecification().contains(equipmentInDTO.getSpecification())).collect(Collectors.toList());
}
voPage.setTotal(page.getTotal());
voPage.setRecords(equipmentInVOList);
result.setResult(voPage);
......
......@@ -202,6 +202,21 @@ public class EquipmentOutController {
stringBuilder.append(",").append(item.getKey());
}
return stringBuilder.toString().replaceFirst(",", "");
} else if ("specification".equals(targetFieldName)) {
String sql2 = "select es.sparepart_name as sparepartName from equipment_sparepart_supplies as es inner join (select sparepart_id from equipment_out_child where out_id = '" + srcFieldVal + "') as tmp on es.id = tmp.sparepart_id";
List<Map<String, Object>> sparePartList = iCommonSqlService.queryForList(sql2);
Map<String, Integer> code2CountMap = new HashMap<>();
if (sparePartList != null && !sparePartList.isEmpty() && sparePartList.get(0) != null) {
for (Map<String, Object> it : sparePartList) {
String name = "" + it.get("specification");
code2CountMap.put(name, code2CountMap.getOrDefault(name, 0) + 1);
}
}
StringBuilder stringBuilder = new StringBuilder();
for (Map.Entry<String, Integer> item : code2CountMap.entrySet()) {
stringBuilder.append(",").append(item.getKey());
}
return stringBuilder.toString().replaceFirst(",", "");
} else if ("useByName".equals(targetFieldName)) {
return sysUserVal2KeyMap.getOrDefault(srcFieldVal, "");
} else if ("departCode_dictText".equals(targetFieldName)) {
......@@ -214,6 +229,9 @@ public class EquipmentOutController {
if (StringUtils.isNotEmpty(equipmentOutDTO.getSparepartName())) {
equipmentOutVOList = equipmentOutVOList.stream().filter(item -> item.getSparepartName().contains(equipmentOutDTO.getSparepartName())).collect(Collectors.toList());
}
if (StringUtils.isNotEmpty(equipmentOutDTO.getSpecification())) {
equipmentOutVOList = equipmentOutVOList.stream().filter(item -> item.getSpecification().contains(equipmentOutDTO.getSpecification())).collect(Collectors.toList());
}
voPage.setRecords(equipmentOutVOList);
result.setResult(voPage);
result.setSuccess(true);
......
......@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.modules.equipment.dto.EquipmentMaintainTaskDTO;
import com.skua.modules.equipment.service.IEquipmentMaintainTaskService;
import com.skua.modules.equipment.service.IEquipmentRepairService;
import com.skua.modules.equipment.vo.EquipmentMaintainTaskForm;
import com.skua.modules.equipment.vo.EquipmentMaintainTaskVO;
import com.skua.modules.equipment.vo.EquipmentRepairForm;
import com.skua.modules.system.service.ISysDepartService;
import com.skua.tool.util.JSUtils;
......@@ -14,12 +16,18 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 维修维护报表
......@@ -80,4 +88,40 @@ public class EquipmentRepairReportController {
result.setResult(pageList);
return result;
}
@RequestMapping(value = "/maintain/exportXls")
public ModelAndView maintainExportXls(EquipmentMaintainTaskForm maintainTaskForm) {
if(StringUtils.isNotEmpty(maintainTaskForm.getDepartId())){
maintainTaskForm.setDepartIds(JSUtils.quoteEach(departService.getChildDepartId(maintainTaskForm.getDepartId()),",") );
}
List<EquipmentMaintainTaskForm> pageList = maintainTaskService.queryMaintainTaskFormByList(maintainTaskForm);
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "维保记录列表");
mv.addObject(NormalExcelConstants.CLASS, EquipmentMaintainTaskForm.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("维保记录列表列表数据", "导出人:", "Sheet1"));
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
@RequestMapping(value = "/repair/exportXls")
public ModelAndView repairExportXls(EquipmentRepairForm equipmentRepairForm) {
if(StringUtils.isNotEmpty(equipmentRepairForm.getFinishFlag())){
equipmentRepairForm.setFinishFlag(JSUtils.quoteEach(equipmentRepairForm.getFinishFlag(),","));
}
if(StringUtils.isNotEmpty(equipmentRepairForm.getDepartId())){
equipmentRepairForm.setDepartIds(JSUtils.quoteEach(departService.getChildDepartId(equipmentRepairForm.getDepartId()),",") );
}
equipmentRepairForm.setDepartId(null);
List<EquipmentRepairForm> pageList = equipmentRepairService.queryRepairFormList(equipmentRepairForm);
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "维修记录列表");
mv.addObject(NormalExcelConstants.CLASS, EquipmentRepairForm.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("维修记录列表列表数据", "导出人:", "Sheet1"));
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
}
......
package com.skua.modules.equipment.controller.web;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.skua.core.query.QueryGenerator;
import com.skua.modules.equipment.entity.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -21,6 +29,10 @@ import com.skua.tool.query.WrapperFactory;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Slf4j
@Api(tags = "设备管理/设备保养/保养任务")
......@@ -147,4 +159,17 @@ public class EquipmentMaintainTaskController {
return result;
}
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(EquipmentMaintainTaskDTO equipmentMaintainTask) {
List<EquipmentMaintainTaskVO> pageList = iEquipmentMaintainTaskService.getXlsList(equipmentMaintainTask);
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "维保记录列表");
mv.addObject(NormalExcelConstants.CLASS, EquipmentMaintainTaskVO.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("维保记录列表列表数据", "导出人:", "Sheet1"));
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
}
......
......@@ -148,6 +148,10 @@ public class EquipmentIn {
@Dict(dicCode="departCode")
private String purchaseDepart;
@ApiModelProperty(value = "规格型号")
@BeanAnno(targetFieldName = "specification_dictText")
private String specification;
public EquipmentIn( ) {
}
......
......@@ -140,4 +140,8 @@ public class EquipmentOut {
@ApiModelProperty(value = "库存更新时间")
private Date inventoryUpdateTime;
@ApiModelProperty(value = "规格型号")
@BeanAnno(targetFieldName = "specification")
private String specification;
}
......
......@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.skua.modules.equipment.dto.EquipmentMaintainTaskDTO;
import com.skua.modules.equipment.entity.EquipmentMaintainTask;
import com.skua.modules.equipment.entity.EquipmentRepairResponse;
import com.skua.modules.equipment.vo.EquipmentMaintainTaskCalendarVO;
import com.skua.modules.equipment.vo.EquipmentMaintainTaskForm;
import com.skua.modules.equipment.vo.EquipmentMaintainTaskVO;
......@@ -59,4 +60,6 @@ public interface IEquipmentMaintainTaskService extends IService<EquipmentMaintai
List<EquipmentMaintainTaskForm> queryMaintainTaskFormByList( EquipmentMaintainTaskForm maintainTaskForm);
List<Map<String, Object>> getList(String startTime, String endTime);
List<EquipmentMaintainTaskVO> getXlsList(EquipmentMaintainTaskDTO equipmentMaintainTask);
}
......
......@@ -390,6 +390,43 @@ public class EquipmentMaintainTaskServiceImpl extends ServiceImpl<EquipmentMaint
}
@Override
public List<EquipmentMaintainTaskVO> getXlsList(EquipmentMaintainTaskDTO equipmentMaintainTask) {
List<EquipmentMaintainTaskVO> equipmentMaintainTasks = new ArrayList<>();
// 查询前先改变当前时间之前的任务改变状态为进行中
//baseMapper.updateResultsEnforcement(new Date(), 1, 2, "");
String userCode = BaseContextHandler.getUserId();
if (null != equipmentMaintainTask.getType() && equipmentMaintainTask.getType() == 0) {
//type=0表示保养任务查询,type=1表示保养记录查询
equipmentMaintainTask.setPlanArrangerId(userCode);
equipmentMaintainTasks = baseMapper.queryCustomPageList(null, equipmentMaintainTask);
}else{
if (null == equipmentMaintainTask.getType()) {
if(ConvertUtils.isEmpty(equipmentMaintainTask.getDepartId())){
equipmentMaintainTask.setDepartId(BaseContextHandler.getDeparts());
}
equipmentMaintainTask.setResultsEnforcement(1);
equipmentMaintainTasks = baseMapper.queryPageList(null, equipmentMaintainTask);
}else{
equipmentMaintainTasks = baseMapper.queryCustomPageList(null, equipmentMaintainTask);
}
}
equipmentMaintainTasks.forEach(e -> {
e.setCycleUnit(UnitUtils.getCycleUnitName(e.getCycleUnit()));
//状态<=2的时候,执行人 具有操作权限,其他人查看权限
if(e.getResultsEnforcement()<=2&&userCode.equals(e.getPlanArrangerId())) {
e.setCurrentState(2);
}
//状态=3的时候,验收人具有操作权限,其他人查看权限
if(e.getResultsEnforcement()==3&&userCode.equals(e.getPlanAccepterId())) {
e.setCurrentState(3);
}
});
return equipmentMaintainTasks;
}
@Override
public boolean updateResultsEnforcement(String id) {
baseMapper.updateResultsEnforcement(new Date(), 1, 2, id);
return true;
......
......@@ -20,4 +20,6 @@ public class EquipmentInVO extends EquipmentIn {
@Excel(name = "入库备品备件", width = 15)
private String sparepartName;
private String specification_dictText;
}
......
......@@ -30,7 +30,6 @@ public class EquipmentRepairForm {
@ApiModelProperty(value = "机构名称")
private java.lang.String departName;
/**设备id*/
@Excel(name = "设备id", width = 15)
@ApiModelProperty(value = "设备id")
private String infoId;
......@@ -42,7 +41,6 @@ public class EquipmentRepairForm {
@ApiModelProperty(value = "设备分类名称")
private String equipmentCategory;
@Excel(name = "办结标记,yes办结", width = 15)
@ApiModelProperty(value = "办结标记,yes办结")
@Dict(dicCode = "equipment_repair_state")
private java.lang.String finishFlag;
......
package com.skua.modules.system.controller;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
......@@ -15,13 +16,18 @@ import com.skua.core.query.QueryGenerator;
import com.skua.core.service.ISequenceService;
import com.skua.core.util.ConvertUtils;
import com.skua.modules.system.entity.SysFactoryUserData;
import com.skua.modules.system.entity.SysFactoryUserInfo;
import com.skua.modules.system.entity.SysUser;
import com.skua.modules.system.service.ISysFactoryUserDataService;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.modules.system.service.ISysFactoryUserInfoService;
import com.skua.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
......@@ -47,6 +53,14 @@ import io.swagger.annotations.ApiOperation;
public class SysFactoryUserDataController {
@Autowired
private ISysFactoryUserDataService sysFactoryUserDataService;
@Autowired
private ISysFactoryUserInfoService sysFactoryUserInfoService;
@Autowired
private ISequenceService sequenceService;
@Autowired
private ISysUserService sysUserService;
// 定义日期格式
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* <pre>
......@@ -92,14 +106,49 @@ public class SysFactoryUserDataController {
public Result<SysFactoryUserData> add(@RequestBody SysFactoryUserData sysFactoryUserData) {
Result<SysFactoryUserData> result = new Result<SysFactoryUserData>();
try {
sysFactoryUserDataService.save(sysFactoryUserData);
result.success("添加成功!");
if(sysFactoryUserData.getUserId()!=null&&sysFactoryUserData.getDepartId()!=null){
//同步修改主信息表
sysFactoryUserData = syncSaveOrUpdate(sysFactoryUserData);
sysFactoryUserDataService.save(sysFactoryUserData);
result.success("添加成功!");
}else{
result.error500("未选择用户或机构");
}
} catch (Exception e) {
log.error(e.getMessage(),e);
result.error500("操作失败");
}
return result;
}
//同步修改主信息表
private SysFactoryUserData syncSaveOrUpdate(SysFactoryUserData sysFactoryUserData) {
SysFactoryUserInfo factoryUserInfo = sysFactoryUserInfoService.getFactoryUserInfoByUserId(sysFactoryUserData.getUserId());
if(factoryUserInfo!=null){
sysFactoryUserData.setBaseId(factoryUserInfo.getId());
}else{
String baseId = String.valueOf(sequenceService.nextId());
factoryUserInfo = new SysFactoryUserInfo();
factoryUserInfo.setId(baseId);
SysUser user = sysUserService.getById(sysFactoryUserData.getUserId());
if(ConvertUtils.isNotEmpty(user)){
factoryUserInfo.setUserName(user.getRealname());
factoryUserInfo.setEmail(user.getEmail());
factoryUserInfo.setTelephone(user.getPhone());
if(ConvertUtils.isNotEmpty(user.getSex())){
factoryUserInfo.setSex(user.getSex().toString());
}
if(ConvertUtils.isNotEmpty(user.getBirthday())){
String birthday = sdf.format(user.getBirthday());
factoryUserInfo.setUserAge(birthday);
}
}
sysFactoryUserInfoService.save(factoryUserInfo);
sysFactoryUserData.setBaseId(factoryUserInfo.getId());
}
return sysFactoryUserData;
}
/**
* <pre>
* 编辑
......@@ -118,10 +167,15 @@ public class SysFactoryUserDataController {
if(sysFactoryUserDataEntity==null) {
result.error500("未找到对应实体");
}else {
boolean ok = sysFactoryUserDataService.updateById(sysFactoryUserData);
//TODO 返回false说明什么?
if(ok) {
result.success("修改成功!");
if(sysFactoryUserData.getUserId()!=null&&sysFactoryUserData.getDepartId()!=null){
//同步修改主信息表
sysFactoryUserData = syncSaveOrUpdate(sysFactoryUserData);
boolean ok = sysFactoryUserDataService.updateById(sysFactoryUserData);
if(ok) {
result.success("修改成功!");
}
}else{
result.error500("未选择用户或机构");
}
}
......
......@@ -32,6 +32,11 @@ public class SysFactoryUserData {
@Excel(name = "基础信息ID", width = 15)
@ApiModelProperty(value = "基础信息ID")
private String baseId;
/**所属厂区*/
@Excel(name = "所属厂区", width = 15)
@ApiModelProperty(value = "所属厂区")
@Dict(dictTable = "sys_depart", dicCode="id", dicText = "depart_name")
private String departId;
/**成员ID*/
@Excel(name = "成员ID", width = 15)
@ApiModelProperty(value = "成员ID")
......
......@@ -13,4 +13,5 @@ public interface SysFactoryUserInfoMapper extends BaseMapper<SysFactoryUserInfo>
List<SysFactoryUserInfo> getList(String departIds, String userName);
SysFactoryUserInfo getFactoryUserInfoByUserId(@Param("userId") String userId);
}
......
......@@ -23,4 +23,8 @@
fu.user_id
</select>
<select id="getFactoryUserInfoByUserId" resultType="com.skua.modules.system.entity.SysFactoryUserInfo">
select * from sys_factory_user_info where user_id = #{userId} limit 1
</select>
</mapper>
......
......@@ -18,4 +18,6 @@ public interface ISysFactoryUserInfoService extends IService<SysFactoryUserInfo>
List<SysFactoryUserInfo> getList(SysFactoryUserInfo sysFactoryUserInfo);
SysFactoryUserInfo saveOrUpdateByUser(SysUser sysUser);
SysFactoryUserInfo getFactoryUserInfoByUserId(String userId);
}
......
......@@ -53,4 +53,10 @@ public class SysFactoryUserInfoServiceImpl extends ServiceImpl<SysFactoryUserInf
return null;
}
@Override
public SysFactoryUserInfo getFactoryUserInfoByUserId(String userId) {
SysFactoryUserInfo factoryUserInfo = sysFactoryUserInfoMapper.getFactoryUserInfoByUserId(userId);
return factoryUserInfo;
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!