Merge remote-tracking branch 'origin/master'

master
xhj 6 months ago
commit 065b3fca25

@ -0,0 +1,43 @@
package com.dsic.gj_erp;
import cn.hutool.core.util.StrUtil;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
public class ExcelMergedCellRead {
public static void main(String[] args) throws IOException {
String fileName="E:\\订货清单.xls";
FileInputStream fileInputStream = new FileInputStream(fileName);
Workbook workbook = WorkbookFactory.create(fileInputStream);
Sheet sheet = workbook.getSheetAt(0);
// 获取合并单元格的信息
List<CellRangeAddress> mergedRegions = sheet.getMergedRegions();
for (int i = 0; i < mergedRegions.size(); i++) {
CellRangeAddress cellRangeAddress = mergedRegions.get(i);
// 获取合并单元格的起始行号、结束行号、起始列号、结束列号
int firstRow = cellRangeAddress.getFirstRow();
int lastRow = cellRangeAddress.getLastRow();
int firstCol = cellRangeAddress.getFirstColumn();
int lastCol = cellRangeAddress.getLastColumn();
// 获取合并单元格的值
Row row = sheet.getRow(firstRow);
Cell cell = row.getCell(firstCol);
try {
String mergedCellValue = cell.getStringCellValue();
System.out.println(StrUtil.format("合并单元格的值: {},位于第{}个", mergedCellValue,i));
}catch (Exception ignored){}
}
fileInputStream.close();
}
}

@ -60,7 +60,7 @@ public class EmGcrl implements Serializable {
@ApiModelProperty(value = "最近的工作日")
private String gzr;
@ApiModelProperty(value = "排班:1:早;2:晚班;3:双班")
@ApiModelProperty(value = "排班:0:白班;1:二班;2:夜班;3:双班")
private String pb;
private Double bbgs=7.0;

@ -10,6 +10,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
@ -42,40 +43,40 @@ public class DmDhqdp implements Serializable {
private String wpxh;
@ApiModelProperty(value = "厚度mm")
private Double thickness;
private BigDecimal thickness;
@ApiModelProperty(value = "宽度mm")
private Double width;
private BigDecimal width;
@ApiModelProperty(value = "长度mm")
private Double length;
private BigDecimal length;
@ApiModelProperty(value = "重量吨/张")
private Double weight;
private BigDecimal weight;
@ApiModelProperty(value = "设计数量张")
private Double sjsl;
private BigDecimal sjsl;
@ApiModelProperty(value = "裕量张")
private Double yl;
private BigDecimal yl;
@ApiModelProperty(value = "总数量张")
private Double zsl;
private BigDecimal zsl;
@ApiModelProperty(value = "总重量吨")
private Double zzl;
private BigDecimal zzl;
@ApiModelProperty(value = "利库数量张")
private Double lksl;
private BigDecimal lksl;
@ApiModelProperty(value = "利库重量吨")
private Double lkzl;
private BigDecimal lkzl;
@ApiModelProperty(value = "实订数量张")
private Double sdzs;
private BigDecimal sdzs;
@ApiModelProperty(value = "实订重量吨")
private Double sdzl;
private BigDecimal sdzl;
@ApiModelProperty(value = "备注")
private String bz;
@ -88,5 +89,10 @@ public class DmDhqdp implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
private String plzlsl;//批量组立数量
private String kdzlsl;//跨道组立数量
private String ptybsl;//平铁用板数量
@TableField(exist = false)
private String xh;//序号列用于去除合计行
}

@ -140,6 +140,8 @@ public class DmZrcjh implements Serializable {
@ApiModelProperty(value = "编制日期 yyyy/MM/dd")
private String bzrq;
private int dataOrder;
public static DmZrcjh createByExcel(String dcCh, String fd, ZrcAndPlb item){
DmZrcjh dmZrcjh = new DmZrcjh();
dmZrcjh.setDcCh(dcCh);
@ -151,13 +153,17 @@ public class DmZrcjh implements Serializable {
throw new ServiceException(10001,"吨位不是数字");
}
dmZrcjh.setGjks(item.getGjks());
dmZrcjh.setKssjDz(item.getGjks());
dmZrcjh.setKssjXz(item.getGjks());
dmZrcjh.setGjjsDz(item.getGjjs());
dmZrcjh.setGjjsXz(item.getGjjs());
dmZrcjh.setJssjXz(item.getGjjs());
dmZrcjh.setXfqTlt(item.getTlt());
dmZrcjh.setXfqLqb(item.getBclqb());
dmZrcjh.setXfqDhqd(item.getDhqd());
dmZrcjh.setBcdq(item.getGldq());
dmZrcjh.setZt("0");
dmZrcjh.setDataOrder(item.getDataOrder());
return dmZrcjh;
}
}

@ -1,6 +1,7 @@
package com.dsic.gj_erp.controller.jcsj;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@ -39,11 +40,18 @@ public class EmGcrlController {
List<EmGcrl> emGcrls=emGcrlService.list(new QueryWrapper<EmGcrl>().orderByAsc("gl"));
Map<String,List<EmGcrl>> years= emGcrls.stream().collect(Collectors.groupingBy(EmGcrl::getNf));
List<String> restDays= emGcrls.stream().filter(l->l.getXxr().equals("0")).map(EmGcrl::getGl).collect(Collectors.toList());
//排班数据
List<String> eb=emGcrls.stream().filter(l->"1".equals(l.getPb())).map(EmGcrl::getGl).collect(Collectors.toList());
List<String> sb=emGcrls.stream().filter(l->"3".equals(l.getPb())).map(EmGcrl::getGl).collect(Collectors.toList());
List<String> yb=emGcrls.stream().filter(l->"2".equals(l.getPb())).map(EmGcrl::getGl).collect(Collectors.toList());
int nextYear=Integer.parseInt(emGcrls.get(emGcrls.size()-1).getNf())+1;
Map map=new HashMap();
map.put("years",years.keySet());
map.put("restDays",restDays);
map.put("nextYear",nextYear);
map.put("eb",eb);
map.put("yb",yb);
map.put("sb",sb);
return new ResultBean(map);
}
@ -51,7 +59,11 @@ public class EmGcrlController {
@ApiOperation(value = "批量修改")
@PostMapping(value = "/update")
public ResultBean update(@RequestBody EmGcrl emGcrl) {
emGcrlService.update(new UpdateWrapper<EmGcrl>().set("xxr",emGcrl.getXxr()).eq("gl",emGcrl.getGl()));
emGcrlService.update(new UpdateWrapper<EmGcrl>()
.set(StrUtil.isNotEmpty(emGcrl.getXxr()),"xxr",emGcrl.getXxr())
.set(StrUtil.isNotEmpty(emGcrl.getPb()),"pb",emGcrl.getPb())
.eq("gl",emGcrl.getGl())
);
return new ResultBean();
}

@ -410,7 +410,7 @@ public class DmCzplpNewServiceImpl extends ServiceImpl<DmCzplpNewMapper, DmCzplp
QueryWrapper<DmCzplpNew> qw = new QueryWrapper<>();
qw.eq(StrUtil.isNotEmpty((String) map.get("dcch")), "dc_ch", (String) map.get("dcch"));
qw.eq(StrUtil.isNotEmpty((String) map.get("dcpl")), "dc_pl", (String) map.get("dcpl"));
qw.orderBy(true, true, "data_order");
qw.orderBy(true, true, "CONVERT(date, gjks, 20),data_order");
if((Boolean) map.get("flag")){
List<DmCbxxp> list= dmCbxxpService.list(new QueryWrapper<DmCbxxp>()

@ -2,6 +2,8 @@ package com.dsic.gj_erp.service.jhgk.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.fastjson.JSONObject;
@ -12,18 +14,23 @@ import com.dsic.gj_erp.mapper.jhgk.DmDhqdpMapper;
import com.dsic.gj_erp.service.jhgk.DmDhqdpService;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
*
*
* </p>
*
* @author xn
@ -36,26 +43,124 @@ public class DmDhqdpServiceImpl extends ServiceImpl<DmDhqdpMapper, DmDhqdp> impl
@Override
public List<DmDhqdp> getList(JSONObject json) {
QueryWrapper<DmDhqdp> queryWrapper=new QueryWrapper<>();
if(StringUtils.isNotEmpty(json.getString("dcCh"))){
queryWrapper.eq("DC_CH",json.getString("dcCh"));
QueryWrapper<DmDhqdp> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(json.getString("dcCh"))) {
queryWrapper.eq("DC_CH", json.getString("dcCh"));
}
if(StringUtils.isNotEmpty(json.getString("Zt"))){
queryWrapper.eq("ZT",json.getString("Zt"));
if (StringUtils.isNotEmpty(json.getString("Zt"))) {
queryWrapper.eq("ZT", json.getString("Zt"));
}
List<DmDhqdp> dmDhqdps=dmDhqdpMapper.selectList(queryWrapper);
return dmDhqdps;
queryWrapper.orderByAsc("wpxh");
return dmDhqdpMapper.selectList(queryWrapper);
}
@Override
@Transactional
public List<DmDhqdp> save(List<DmDhqdp> dmDhqdps) {
saveBatch(dmDhqdps);
return dmDhqdps;
}
@Override
@Transactional
public List<DmDhqdp> upload(MultipartFile file, HttpServletRequest req) throws IOException {
ExcelReader reader= ExcelUtil.getReader(file.getInputStream());
Workbook workbook = WorkbookFactory.create(file.getInputStream());
Sheet sheet = workbook.getSheetAt(0);
List<CellRangeAddress> mergedRegions = sheet.getMergedRegions();
if (mergedRegions.size() > 74) {
String ddh = null;
String dcch = null;
String qc = null;
CellRangeAddress ddhAddr = mergedRegions.get(68);
if (ddhAddr != null) {
ddh = this.getMergedData(sheet, ddhAddr);
}
CellRangeAddress chAddr = mergedRegions.get(74);
if (chAddr != null) {
dcch = this.getMergedData(sheet, chAddr);
}
CellRangeAddress qcAddr = mergedRegions.get(75);
if (qcAddr != null) {
qc = this.getMergedData(sheet, qcAddr);
qc=StrUtil.subBetween(qc, "", "");
}
if (StrUtil.isAllNotEmpty(dcch, ddh)) {
List<DmDhqdp> list = new ArrayList<>();
List<DmDhqdp> dmDhqdps = this.readExcel(file, dcch, ddh, qc, 1, req);
List<DmDhqdp> dmDhqdps1 = this.readExcel(file, dcch, ddh, qc, 2, req);
if (ObjUtil.isNotEmpty(dmDhqdps)) {
list.addAll(dmDhqdps);
}
if (ObjUtil.isNotEmpty(dmDhqdps1)) {
list.addAll(dmDhqdps1);
}
this.saveBatch(list.stream().filter(item->StrUtil.isNotEmpty(item.getDcCh())).collect(Collectors.toList()));
return list;
}
}
return null;
}
private String getMergedData(Sheet sheet, CellRangeAddress addr) {
int firstRow = addr.getFirstRow();
int firstCol = addr.getFirstColumn();
Row row = sheet.getRow(firstRow);
Cell cell = row.getCell(firstCol);
try {
return cell.getStringCellValue();
} catch (Exception ignored) {
}
return null;
}
@Transactional
public List<DmDhqdp> readExcel(MultipartFile file, String dcch, String ddh, String qc, int sheet, HttpServletRequest req) throws IOException {
ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
Map<String, String> alias = Maps.newLinkedHashMap();
alias.put("序号\nNo.", "xh");
alias.put("材质\nMATERIAL", "wpxh");
alias.put("厚度\r\nTHICK.\nmm", "thickness");
alias.put("宽度\r\nWIDTH\nmm", "width");
alias.put("长度\r\nLENGTH\nmm", "length");
alias.put("重量\r\n吨/张\nWEIGHT\nTON/PIECE\r", "weight");
alias.put("设计数量\n张\nDESIGN\nPIECE", "sjsl");
alias.put("裕量\n张\nMARGIN\nPIECE", "yl");
alias.put("总数量\n张\nTOTAL\nPIECE", "zsl");
alias.put("总重量\n吨\nTOTAL\nTON ", "zzl");
alias.put("利库数量\n张\nSTORE\nPIECE", "lksl");
alias.put("利库重量\n吨\nSTORE\nTON", "lkzl");
alias.put("实订数量\n张\nORDER\nPIECE", "sdzs");
alias.put("实订重量\n吨\nORDER\nTON", "sdzl");
alias.put("备注\nNOTE", "bz");
alias.put("批量组立数量", "plzlsl");
alias.put("跨道组立数量", "kdzlsl");
alias.put("平铁用板数量", "ptybsl");
reader.setHeaderAlias(alias);
reader.setSheet(sheet);
List<DmDhqdp> dmDhqdps = reader.read(1, 2, DmDhqdp.class);
String day = DateUtil.format(DateUtil.date(), "yyyy/MM/dd");
String user = (String) req.getAttribute("yhms");
this.remove(new QueryWrapper<DmDhqdp>().eq("Dc_ch", dcch)
.eq("qdh", ddh)
.eq("qc", qc));
dmDhqdps.stream().filter(item->StrUtil.isNotEmpty(item.getXh())&&!item.getXh().contains("合计"))
.forEach(l -> {
l.setDcCh(dcch);
l.setQdh(ddh);
l.setQc(qc);
l.setDrr(user);
l.setDrrq(day);
});
return dmDhqdps;
}
@Transactional
public List<DmDhqdp> upload1(MultipartFile file, HttpServletRequest req) throws IOException {
ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
Map<String, String> alias = Maps.newLinkedHashMap();
alias.put("船号", "dcCh");
alias.put("订货清单号", "qdh");
@ -111,15 +216,15 @@ public class DmDhqdpServiceImpl extends ServiceImpl<DmDhqdpMapper, DmDhqdp> impl
"TON", "sdzl");
alias.put("备注\n" +
"NOTE", "bz");
// alias.put("状态", "zt");
// alias.put("状态", "zt");
reader.setHeaderAlias(alias);
List<DmDhqdp> dmDhqdps= reader.readAll(DmDhqdp.class);
List<DmDhqdp> dmDhqdps = reader.readAll(DmDhqdp.class);
String day = DateUtil.format(DateUtil.date(), "yyyy/MM/dd");
String user = (String) req.getAttribute("yhms");
dmDhqdps.forEach(l->{
this.remove(new QueryWrapper<DmDhqdp>().eq("Dc_ch",l.getDcCh())
.eq("qdh",l.getQdh())
.eq("qc",l.getQc()));
dmDhqdps.forEach(l -> {
this.remove(new QueryWrapper<DmDhqdp>().eq("Dc_ch", l.getDcCh())
.eq("qdh", l.getQdh())
.eq("qc", l.getQc()));
l.setDrr(user);
l.setDrrq(day);
});
@ -127,6 +232,7 @@ public class DmDhqdpServiceImpl extends ServiceImpl<DmDhqdpMapper, DmDhqdp> impl
}
@Override
@Transactional
public void sh(List<DmDhqdp> dmDhqdps) {
dmDhqdps.forEach(dmZrcjh -> {
dmZrcjh.setZt("2");
@ -135,10 +241,11 @@ public class DmDhqdpServiceImpl extends ServiceImpl<DmDhqdpMapper, DmDhqdp> impl
}
@Override
@Transactional
public void tj(List<DmDhqdp> dmXbjhs) {
dmXbjhs.forEach(dmZrcjh -> {
String zt=dmZrcjh.getZt();
String setZt=zt.equals("1")?"0":"1";
String zt = dmZrcjh.getZt();
String setZt = zt.equals("1") ? "0" : "1";
dmZrcjh.setZt(setZt);
});
updateBatchById(dmXbjhs);

@ -73,7 +73,7 @@ public class DmZrcjhServiceImpl extends ServiceImpl<DmZrcjhMapper, DmZrcjh> impl
if (StringUtils.isNotEmpty(json.getString("dcCh"))) {
queryWrapper.eq("DC_CH", json.getString("dcCh"));
}
queryWrapper.orderByAsc("DC_CH,cast(DC_PL as int)");
queryWrapper.orderByAsc("DC_CH,CONVERT(date, gjks, 20),data_order");
// queryWrapper.orderByAsc("DC_PL");
List<DmZrcjh> dmZrcjhs = dmZrcjhMapper.selectList(queryWrapper);
return dmZrcjhs;

Loading…
Cancel
Save