1.批量维护BOM的坡口定额工时/打磨定额工时/曲定额工时字段;

2.根据小池数据,反写BOM及切割派工单的实际划线/切割长度,划线/切割实动工时等字段;定时执行;
3.导入套料图PDF时,将文件上传到服务器,并保存地址到数据库;
master
xiaoning 12 months ago
parent 3924cc8ad6
commit ab4fab389f

@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springframework.data.annotation.Id;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -81,8 +82,12 @@ public class DmBom implements Serializable {
@ApiModelProperty(value = "切割长度") @ApiModelProperty(value = "切割长度")
private BigDecimal qgcd; private BigDecimal qgcd;
@ApiModelProperty(value = "实际切割长度")
private BigDecimal fkqgcd;
@ApiModelProperty(value = "划线长度") @ApiModelProperty(value = "划线长度")
private BigDecimal hxcd; private BigDecimal hxcd;
@ApiModelProperty(value = "实际划线长度")
private BigDecimal fkhxcd;
@ApiModelProperty(value = "图纸编号") @ApiModelProperty(value = "图纸编号")
private String tzbh; private String tzbh;

@ -47,5 +47,8 @@ public class DmTltpdf implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_UUID) @TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id; private String id;
@ApiModelProperty(value = "保存路径")
private String filePath;
} }

@ -73,6 +73,8 @@ public class PgdQgjh implements Serializable {
@ApiModelProperty(value = "划线长度") @ApiModelProperty(value = "划线长度")
private Double hxcd; private Double hxcd;
@ApiModelProperty(value = "实际划线长度")
private Double fkhxcd;
@ApiModelProperty(value = "划线空程长度") @ApiModelProperty(value = "划线空程长度")
private Double hxkccd; private Double hxkccd;
@ -82,6 +84,8 @@ public class PgdQgjh implements Serializable {
@ApiModelProperty(value = "切割长度") @ApiModelProperty(value = "切割长度")
private String qgcd; private String qgcd;
@ApiModelProperty(value = "实际切割长度")
private String fkqgcd;
@ApiModelProperty(value = "切割空程长度") @ApiModelProperty(value = "切割空程长度")
private Double qgkccd; private Double qgkccd;

@ -14,6 +14,7 @@ import com.dsic.gj_erp.service.jcsj.DmBomService;
import com.dsic.gj_erp.service.jcsj.DmTltpdfService; import com.dsic.gj_erp.service.jcsj.DmTltpdfService;
import com.dsic.gj_erp.service.jcsj.impl.BomUploadServiceImpl; import com.dsic.gj_erp.service.jcsj.impl.BomUploadServiceImpl;
import com.dsic.gj_erp.service.sy.SYService; import com.dsic.gj_erp.service.sy.SYService;
import com.dsic.gj_erp.util.FileUtil;
import io.swagger.annotations.Authorization; import io.swagger.annotations.Authorization;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocument;
@ -55,12 +56,26 @@ public class DmBomController {
@Autowired @Autowired
DmTltpdfService tltpdfService; DmTltpdfService tltpdfService;
@PostMapping("/saveDegs")
@AuthFunction
public ResultBean saveDegs( @RequestBody List<DmBom> list ){
for (DmBom bom : list) {
dmBomService.update(new UpdateWrapper<DmBom>().eq("idd",bom.getIdd())
.set("pkgs",bom.getPkgs())
.set("dmgs",bom.getDmgs())
.set("qgs",bom.getQgs())
);
}
return new ResultBean();
}
@PostMapping("/uploadPDF") @PostMapping("/uploadPDF")
@Authorization("") @Authorization("")
@Transactional @Transactional
@ResponseBody @ResponseBody
public ResultBean uploadPDF(@RequestParam("file") MultipartFile[] fileList)throws IOException { public ResultBean uploadPDF(@RequestParam("file") MultipartFile[] fileList)throws IOException {
for (MultipartFile file : fileList) { for (MultipartFile file : fileList) {
String url= FileUtil.handlerUpload(file,"/tltpdf");
PDDocument document = PDDocument.load(file.getInputStream()); PDDocument document = PDDocument.load(file.getInputStream());
int pageNum = document.getNumberOfPages(); int pageNum = document.getNumberOfPages();
PDFTextStripper stripper = new PDFTextStripper(); PDFTextStripper stripper = new PDFTextStripper();
@ -95,6 +110,7 @@ public class DmBomController {
tltpdf.setPageNum(i +"/"+pageNum); tltpdf.setPageNum(i +"/"+pageNum);
tltpdf.setRows((j+1) +"/"+a.length); tltpdf.setRows((j+1) +"/"+a.length);
tltpdf.setContent(a[j]); tltpdf.setContent(a[j]);
tltpdf.setFilePath(url);
list.add(tltpdf); list.add(tltpdf);
// System.out.println("第 " + (j+1) +"/"+a.length+ " 行 :"); // System.out.println("第 " + (j+1) +"/"+a.length+ " 行 :");
// System.out.println(a[j]); // System.out.println(a[j]);

@ -7,4 +7,6 @@ import java.util.List;
public interface CutPlanMapper extends BaseMapper<CutPlan> { public interface CutPlanMapper extends BaseMapper<CutPlan> {
List<CutPlan> getCutPlanList(String st,String ed); List<CutPlan> getCutPlanList(String st,String ed);
void synBom_qgPgd();
} }

@ -90,4 +90,15 @@ public class XiaoChiService{
}); });
CronUtil.start(); CronUtil.start();
} }
// @PostConstruct
public void synBom_qgPgd(){
//每天凌晨一点,同步前一天数据
// CronUtil.schedule("0 1 * * *", (Task) () -> {
CronUtil.schedule("*/1 * * * * *", (Task) () -> {
mapper.synBom_qgPgd();
});
CronUtil.start();
}
} }

@ -0,0 +1,50 @@
package com.dsic.gj_erp.util;
import org.springframework.lang.NonNull;
import org.springframework.web.multipart.MultipartFile;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
public class FileUtil {
public static String handlerUpload(MultipartFile multipartFile,@NonNull String path) {
String originalFilename = multipartFile.getOriginalFilename();
AtomicReference<String> url = new AtomicReference<>("");
Optional.ofNullable(originalFilename).ifPresent(name -> {
// String suffix = name.substring(name.lastIndexOf("."));
// String suffix = name.substring(name.lastIndexOf("/"));
File filePath = new File("./static/upload" + path);
if (!filePath.exists()) {
filePath.mkdirs();
}
String fileName = name.substring(name.lastIndexOf("/"));
String tmpUrl = path + fileName;
url.set(tmpUrl);
FileUtil.saveToDisk("./static/upload" + tmpUrl, multipartFile);
});
return url.get();
}
public static void saveToDisk(String filePath, MultipartFile multipartFile) {
try (BufferedOutputStream bos = new BufferedOutputStream(Files.newOutputStream(Paths.get(filePath)))) {
FileInputStream fileInputStream = (FileInputStream) multipartFile.getInputStream();
byte[] bs = new byte[1024];
int len;
while ((len = fileInputStream.read(bs)) != -1) {
bos.write(bs, 0, len);
}
bos.flush();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("上传失败");
}
}
}

@ -24,4 +24,12 @@
and (b.qgksrq is null or qgjsrq is null ) and (b.qgksrq is null or qgjsrq is null )
) )
</select> </select>
<update id="synBom_qgPgd" statementType="CALLABLE">
<![CDATA[
{
call synchronization_bom_gqpgd
}
]]>
</update>
</mapper> </mapper>

Loading…
Cancel
Save