|
@@ -5,20 +5,31 @@ import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateUnit;
|
|
import cn.hutool.core.date.DateUnit;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.google.common.collect.Maps;
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
|
|
import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
import com.rongwei.bscommon.sys.utils.ApsUtils;
|
|
import com.rongwei.bscommon.sys.utils.ApsUtils;
|
|
import com.rongwei.bsentity.domain.*;
|
|
import com.rongwei.bsentity.domain.*;
|
|
import com.rongwei.bsentity.vo.*;
|
|
import com.rongwei.bsentity.vo.*;
|
|
|
|
+import com.rongwei.rwadmincommon.system.service.SysGeneralCRUDService;
|
|
import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
import com.rongwei.rwcommon.base.R;
|
|
import com.rongwei.rwcommon.base.R;
|
|
import com.rongwei.rwcommon.base.exception.CustomException;
|
|
import com.rongwei.rwcommon.base.exception.CustomException;
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
|
+import com.rongwei.rwcommon.vo.CriteriaBuilder;
|
|
|
|
+import com.rongwei.rwcommon.vo.CriteriaQuery;
|
|
|
|
+import com.rongwei.safecommon.fegin.CXAdminFeginClient;
|
|
import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
import com.rongwei.safecommon.utils.SaveConstans;
|
|
import com.rongwei.safecommon.utils.SaveConstans;
|
|
import com.rongwei.wfserver.wfcommon.sys.service.impl.ProcessServiceImpl;
|
|
import com.rongwei.wfserver.wfcommon.sys.service.impl.ProcessServiceImpl;
|
|
@@ -35,7 +46,10 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
|
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.IOException;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.net.URLEncoder;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -100,6 +114,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
private PlatformTransactionManager transactionManager;
|
|
private PlatformTransactionManager transactionManager;
|
|
@Autowired
|
|
@Autowired
|
|
private ApsRollerTypeService apsRollerTypeService;
|
|
private ApsRollerTypeService apsRollerTypeService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CXAdminFeginClient cxAdminFeginClient;
|
|
|
|
|
|
// /**
|
|
// /**
|
|
// * 更新工序的待加工批次号信息
|
|
// * 更新工序的待加工批次号信息
|
|
@@ -2579,6 +2595,48 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public void workShopExport(CriteriaQuery query, HttpServletResponse response) throws IOException {
|
|
|
|
+ //调用平台接口查询结果
|
|
|
|
+ query.setCurrent(null);
|
|
|
|
+ query.setSize(null);
|
|
|
|
+ R listData = cxAdminFeginClient.getListData(query);
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(listData.getData().toString());
|
|
|
|
+ JSONArray records = jsonObject.getJSONArray("records");
|
|
|
|
+ //返回指定格式的数据
|
|
|
|
+ List<WorkShopExportVo> res = new LinkedList<>();
|
|
|
|
+ // 转换为全小写key的map
|
|
|
|
+ for (Object vo : records) {
|
|
|
|
+ JSONObject record = JSONObject.parseObject(vo.toString());
|
|
|
|
+ JSONObject convertKeysToLowercase = convertKeysToLowercase(record);
|
|
|
|
+ WorkShopExportVo workShopExportVo = BeanUtil.toBean(convertKeysToLowercase, WorkShopExportVo.class);
|
|
|
|
+ res.add(workShopExportVo);
|
|
|
|
+ }
|
|
|
|
+ // 设置响应头
|
|
|
|
+ String fileName = "车间作业跟踪导出数据_" + System.currentTimeMillis() + ".xlsx";
|
|
|
|
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
|
+ response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
|
|
|
|
+
|
|
|
|
+ // 写入Excel
|
|
|
|
+ EasyExcel.write(response.getOutputStream(), WorkShopExportVo.class)
|
|
|
|
+ .sheet("车间作业跟踪")
|
|
|
|
+ .doWrite(res);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static JSONObject convertKeysToLowercase(JSONObject original) {
|
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
|
+ for (String key : original.keySet()) {
|
|
|
|
+ Object value = original.get(key);
|
|
|
|
+ // 递归处理嵌套的JSONObject
|
|
|
|
+ if (value instanceof JSONObject) {
|
|
|
|
+ value = convertKeysToLowercase((JSONObject) value);
|
|
|
|
+ }
|
|
|
|
+ result.put(key.toLowerCase(), value);
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|