Commit ff960f20 authored by 李驰骋's avatar 李驰骋

请购单创建接口调整、完工入库接口开发

parent 8765bd80
package com.topsunit.scanservice.ximai.controller;
import com.topsunit.scanservice.ximai.dto.MoctcCreateCriteria;
import com.topsunit.scanservice.ximai.dto.MoctcCreateDto;
import com.topsunit.scanservice.ximai.dto.MoctcCreateParams;
import com.topsunit.scanservice.ximai.dto.MoctfCreateParams;
import com.topsunit.scanservice.ximai.service.MoctcService;
import com.topsunit.scanservice.ximai.service.MoctfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Optional;
/**
* 完工入库申请
*/
@RestController
public class MoctfController {
@Autowired
private MoctfService moctfService;
@PostMapping("/moctf/create")
public void create(@RequestBody MoctfCreateParams createParams) {
moctfService.create(createParams);
}
}
package com.topsunit.scanservice.ximai.controller;
import com.topsunit.scanservice.ximai.dto.PurmaCriteria;
import com.topsunit.scanservice.ximai.dto.PurmaDto;
import com.topsunit.scanservice.ximai.dto.PurtaCreateDto;
import com.topsunit.scanservice.ximai.service.PurmaService;
import com.topsunit.scanservice.ximai.dto.PurtaCreateParams;
import com.topsunit.scanservice.ximai.service.PurtaService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -11,8 +8,6 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>Title: PurmaController</p>
* <p>Description: 请购单</p>
......@@ -28,7 +23,7 @@ public class PurtaController {
private PurtaService purtaService;
@ApiOperation("新增请购单")
@PostMapping("/purta/insert")
public void create(@RequestBody PurtaCreateDto create){
public void create(@RequestBody PurtaCreateParams create){
purtaService.create(create);
}
......
package com.topsunit.scanservice.ximai.dao;
import com.topsunit.scanservice.ximai.entity.Moctf;
import com.topsunit.scanservice.ximai.entity.MoctfId;
import com.topsunit.scanservice.ximai.entity.Mocth;
import com.topsunit.scanservice.ximai.entity.MocthId;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* <p>Title: MoctfDao</p>
* <p>Description: MoctfDao</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/23
*/
public interface MoctfDao extends JpaRepository<Moctf, MoctfId>, JpaSpecificationExecutor<Moctf> {
}
package com.topsunit.scanservice.ximai.dao;
import com.topsunit.scanservice.ximai.entity.Moctg;
import com.topsunit.scanservice.ximai.entity.MoctgId;
import com.topsunit.scanservice.ximai.entity.Mocth;
import com.topsunit.scanservice.ximai.entity.MocthId;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* <p>Title: MoctgDao</p>
* <p>Description: MoctgDao</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/23
*/
public interface MoctgDao extends JpaRepository<Moctg, MoctgId>, JpaSpecificationExecutor<Moctg> {
}
package com.topsunit.scanservice.ximai.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>Title: MoctfCreateParams</p>
* <p>Description: 完工入库申请表头</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/22
*/
@Data
public class MoctfCreateParams {
@ApiModelProperty("入库单别")
private String tf001="5801";
/**
* S+yyMMddxxxx
*/
@ApiModelProperty("入库单号")
private String tf002;
/**
* 入库日期
*/
@ApiModelProperty("入库日期")
private String tf003;
@ApiModelProperty("工厂编号")
private String tf004="01";
@ApiModelProperty("备注")
private String tf005;
@ApiModelProperty("审核码")
private String tf006="N";
@ApiModelProperty("生产记录更新码")
private String tf007="N";
@ApiModelProperty("生成分录-成本")
private String tf010="N";
@ApiModelProperty("签核状态码")
private String tf014="N";
@ApiModelProperty("自动扣料更新码")
private String tf009="N";
@ApiModelProperty("工作中心")
private String tf011="0001";
/**
* 单据日期
*/
@ApiModelProperty("单据日期")
private String tf012;
@ApiModelProperty("部门")
private String tf016="04";
@ApiModelProperty("项目编号")
private String tf033;
@ApiModelProperty("明细")
private List<MoctgCreateParams> details;
}
package com.topsunit.scanservice.ximai.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>Title: MoctgCreateParams</p>
* <p>Description: 完工入库申请表身</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/22
*/
@Data
public class MoctgCreateParams {
@ApiModelProperty("入库单别")
private String tg001="5801";
@ApiModelProperty("入库单号")
private String tg002;
@ApiModelProperty("序号")
private String tg003="0001";
/**
* 产品品号
*/
@ApiModelProperty("产品品号")
private String tg004;
@ApiModelProperty("品名")
private String tg005;
@ApiModelProperty("规格")
private String tg006;
@ApiModelProperty("单位")
private String tg007;
@ApiModelProperty("入/出别")
private Integer tg009=1;
@ApiModelProperty("仓库")
private String tg010;
@ApiModelProperty("库位")
private String tg036;
@ApiModelProperty("库存单位")
private String tg037;
@ApiModelProperty("入库数量")
private BigDecimal tg011;
@ApiModelProperty("工单单别")
private String tg014;
@ApiModelProperty("工单单号")
private String tg015;
@ApiModelProperty("检验状态")
private String tg016="0";
@ApiModelProperty("急料")
private String tg024;
@ApiModelProperty("生产日期")
private String tg030;
@ApiModelProperty("报废数量")
private BigDecimal tg012=BigDecimal.ZERO;
@ApiModelProperty("验退数量")
private BigDecimal tg023=BigDecimal.ZERO;
@ApiModelProperty("破坏数量")
private BigDecimal tg032=BigDecimal.ZERO;
@ApiModelProperty("验收数量")
private BigDecimal tg013;
}
package com.topsunit.scanservice.ximai.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -8,34 +10,41 @@ import java.math.BigDecimal;
import java.util.List;
/**
* <p>Title: PurtaCreateDto</p>
* <p>Description: PurtaCreateDto</p>
* <p>Title: PurtaCreateParams</p>
* <p>Description: PurtaCreateParams</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/22
*/
@Data
public class PurtaCreateDto {
public class PurtaCreateParams {
@Id
@ApiModelProperty("请购单别")
private String ta001;
private String ta001="471";
@Id
@ApiModelProperty("请购单号")
private String ta002;
@ApiModelProperty("工单单别")
private String orderSource;
@ApiModelProperty("工单单号")
private String workorderCode;
@ApiModelProperty("请购日期")
private String ta003;
@ApiModelProperty("请购部门")
private String ta004;
private String ta004="04";
@ApiModelProperty("审核码")
private String ta007;
private String ta007="Y";
@ApiModelProperty("数量合计")
private BigDecimal ta011;
@ApiModelProperty("来源")
private String ta009;
private String ta009="9";
@ApiModelProperty("工厂")
private String ta010;
private String ta010="01";
@ApiModelProperty("客户订单号")
private String udf02;
@ApiModelProperty("销售单号")
......@@ -45,8 +54,6 @@ public class PurtaCreateDto {
@ApiModelProperty("备注")
private String ta006;
@ApiModelProperty("明细")
private List<PurtbCreateDto> details;
@ApiModelProperty("明细2")
private List<PurtrCreateDto> details2;
private List<PurtbCreateParams> details;
}
......@@ -7,62 +7,59 @@ import javax.persistence.Id;
import java.math.BigDecimal;
/**
* <p>Title: PurtbCreateDto</p>
* <p>Description: PurtbCreateDto</p>
* <p>Title: PurtbCreateParams</p>
* <p>Description: PurtbCreateParams</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/22
*/
@Data
public class PurtbCreateDto {
@Id
@ApiModelProperty("单别")
private String tb001;
@Id
@ApiModelProperty("单号")
private String tb002;
@Id
public class PurtbCreateParams {
@ApiModelProperty("序号")
private String tb003;
private String tb003="0001";
@ApiModelProperty("品号")
private String tb004;
private String tb004="E0000006";
@ApiModelProperty("品名")
private String tb005;
private String tb005="委外加工费";
@ApiModelProperty("规格")
private String tb006;
@ApiModelProperty("请购单位")
private String tb007;
private String tb007="PCS";
@ApiModelProperty("仓库")
private String tb008;
private String tb008="06";
@ApiModelProperty("请购数量")
private BigDecimal tb009;
private BigDecimal tb009=BigDecimal.ONE;
@ApiModelProperty("需求日期")
private String tb011;
@ApiModelProperty("锁定码")
private String tb020;
private String tb020="N";
@ApiModelProperty("采购单位")
private String tb015="PCS";
@ApiModelProperty("采购币种")
private String tb016="RMB";
@ApiModelProperty("采购码")
private String tb021;
private String tb021="N";
@ApiModelProperty("备注")
private String tb024;
@ApiModelProperty("审核码")
private String tb025;
private String tb025="Y";
@ApiModelProperty("销售单号")
private String tb030;
@ApiModelProperty("急料")
private String tb032;
@ApiModelProperty("结束")
private String tb039;
private String tb039="N";
@ApiModelProperty("采购单价")
private BigDecimal tb017;
private BigDecimal tb017=BigDecimal.ZERO;
@ApiModelProperty("采购金额")
private BigDecimal tb018;
private BigDecimal tb018=BigDecimal.ZERO;
@ApiModelProperty("税种")
private String tb026;
private String tb026="1";
@ApiModelProperty("计价单位")
private String tb043;
private String tb043="PCS";
@ApiModelProperty("计价数量")
private String tb044;
private BigDecimal tb044=BigDecimal.ZERO;
@ApiModelProperty("客户订单号")
private String udf01;
@ApiModelProperty("委外产品图号")
......
......@@ -3,55 +3,54 @@ package com.topsunit.scanservice.ximai.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Id;
import java.math.BigDecimal;
/**
* <p>Title: PurtrCreateDto</p>
* <p>Description: PurtrCreateDto</p>
* <p>Title: PurtrCreateParams</p>
* <p>Description: PurtrCreateParams</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/22
*/
@Data
public class PurtrCreateDto {
public class PurtrCreateParams {
@ApiModelProperty("单别")
private String tr001;
private String tr001="471";
@ApiModelProperty("单号")
private String tr002;
@ApiModelProperty("序号")
private String tr003;
private String tr003="0001";
@ApiModelProperty("序号")
private String tr004;
private String tr004="0001";
@ApiModelProperty("采购数量")
private BigDecimal tr006;
@ApiModelProperty("采购比率")
private BigDecimal tr007;
private BigDecimal tr007=BigDecimal.ONE;
@ApiModelProperty("采购单位")
private String tr008;
private String tr008="PCS";
@ApiModelProperty("采购币种")
private String tr009;
private String tr009="RMB";
@ApiModelProperty("采购单价")
private BigDecimal tr010;
private BigDecimal tr010=BigDecimal.ZERO;
@ApiModelProperty("采购金额")
private BigDecimal tr011;
private BigDecimal tr011=BigDecimal.ZERO;
@ApiModelProperty("税种")
private String tr012;
private String tr012="1";
@ApiModelProperty("交货日")
private String tr013;
@ApiModelProperty("交货仓库")
private String tr014;
private String tr014="06";
@ApiModelProperty("采购码")
private String tr017;
private String tr017="N";
@ApiModelProperty("锁定码")
private String tr018;
private String tr018="N";
@ApiModelProperty("采购小单位")
private String tr024;
private String tr024="PCS";
@ApiModelProperty("计价单位")
private String tr026;
private String tr026="PCS";
@ApiModelProperty("急料")
private String tr015;
......
......@@ -49,6 +49,9 @@ public class Invmb extends EntityBase {
private String mb149;
@ApiModelProperty("客户品号")
private String udf01;
/**
* 主要仓库
*/
@ApiModelProperty("主要仓库")
private String mb017;
/**
......
package com.topsunit.scanservice.ximai.entity;
import io.swagger.annotations.ApiModelProperty;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
......@@ -25,6 +27,10 @@ public class Invmc extends EntityBase {
public String mc013;
/**
* 主要库位
*/
@ApiModelProperty("主要库位")
public String mc015;
public String getMc001() {
......
......@@ -17,8 +17,8 @@ public class InvmcId implements Serializable {
}
public InvmcId(String mc001, String mc002) {
this.mc001 = String.format("%1$-20s", mc001);
this.mc002 = String.format("%1$-10s", mc002);
this.mc001 = mc001;
this.mc002 = mc002;
}
public String mc001;
......
package com.topsunit.scanservice.ximai.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import java.math.BigDecimal;
/**
* <p>Title: Moctf</p>
* <p>Description: 生产入库单头档</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/23
*/
@Data
@Entity
@IdClass(MoctfId.class)
public class Moctf extends EntityBase {
@Id
@ApiModelProperty("入库单别")
private String tf001;
/**
* S+yyMMddxxxx
*/
@Id
@ApiModelProperty("入库单号")
private String tf002;
/**
* 入库日期
*/
@ApiModelProperty("入库日期")
private String tf003;
@ApiModelProperty("工厂编号")
private String tf004;
@ApiModelProperty("备注")
private String tf005;
@ApiModelProperty("审核码")
private String tf006;
@ApiModelProperty("生产记录更新码")
private String tf007;
@ApiModelProperty("生成分录-成本")
private String tf010;
@ApiModelProperty("签核状态码")
private String tf014;
@ApiModelProperty("自动扣料更新码")
private String tf009;
@ApiModelProperty("工作中心")
private String tf011;
/**
* 单据日期
*/
@ApiModelProperty("单据日期")
private String tf012;
@ApiModelProperty("部门")
private String tf016;
/**
* 总入库数
*/
@ApiModelProperty("总入库数")
private BigDecimal tf023;
/**
* 总验收数
*/
@ApiModelProperty("总验收数")
private BigDecimal tf024;
@ApiModelProperty("项目编号")
private String tf033;
}
package com.topsunit.scanservice.ximai.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Objects;
@Data
public class MoctfId implements Serializable {
public MoctfId() {
}
public MoctfId(String tf001, String tf002) {
this.tf001 = tf001;
this.tf002 = tf002;
}
private String tf001;
private String tf002;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MoctfId id = (MoctfId) o;
return tf001.equals(id.tf001) && tf002.equals(id.tf002);
}
@Override
public int hashCode() {
return Objects.hash(tf001, tf002);
}
}
package com.topsunit.scanservice.ximai.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import java.math.BigDecimal;
/**
* <p>Title: Moctg</p>
* <p>Description: 生产入库单身档</p>
*
* @author chicheng.li
* @version V1.0
* @date 2024/10/23
*/
@Data
@Entity
@IdClass(MoctgId.class)
public class Moctg extends EntityBase {
@Id
@ApiModelProperty("入库单别")
private String tg001;
@Id
@ApiModelProperty("入库单号")
private String tg002;
@Id
@ApiModelProperty("序号")
private String tg003;
/**
* 产品品号
*/
@ApiModelProperty("产品品号")
private String tg004;
/**
* 品名
*/
@ApiModelProperty("品名")
private String tg005;
/**
* 规格
*/
@ApiModelProperty("规格")
private String tg006;
/**
* 单位
*/
@ApiModelProperty("单位")
private String tg007;
@ApiModelProperty("入/出别")
private Integer tg009;
/**
* tg010
*/
@ApiModelProperty("仓库")
private String tg010;
@ApiModelProperty("库位")
private String tg036;
@ApiModelProperty("库存单位")
private String tg037;
@ApiModelProperty("入库数量")
private BigDecimal tg011;
/**
* 工单单别
*/
@ApiModelProperty("工单单别")
private String tg014;
/**
* 工单单号
*/
@ApiModelProperty("工单单号")
private String tg015;
@ApiModelProperty("检验状态")
private String tg016="0";
@ApiModelProperty("急料")
private String tg024;
/**
* 生产日期
*/
@ApiModelProperty("生产日期")
private String tg030;
@ApiModelProperty("报废数量")
private BigDecimal tg012;
@ApiModelProperty("验退数量")
private BigDecimal tg023;
@ApiModelProperty("破坏数量")
private BigDecimal tg032;
@ApiModelProperty("验收数量")
private BigDecimal tg013;
}
package com.topsunit.scanservice.ximai.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.Objects;
@Data
public class MoctgId implements Serializable {
public MoctgId() {
}
public MoctgId(String tg001, String tg002, String tg003) {
this. tg001 = tg001;
this. tg002 = tg002;
this. tg003 = tg003;
}
@ApiModelProperty("入库单别")
private String tg001;
@ApiModelProperty("入库单号")
private String tg002;
@ApiModelProperty("序号")
private String tg003;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MoctgId id = (MoctgId) o;
return tg001.equals(id.tg001) && tg002.equals(id.tg002) && tg003.equals(id.tg003);
}
@Override
public int hashCode() {
return Objects.hash( tg001, tg002, tg003);
}
}
package com.topsunit.scanservice.ximai.entity;
import com.topsunit.scanservice.ximai.dto.PurtbCreateDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -8,7 +7,6 @@ import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>Title: Purta</p>
......
......@@ -53,12 +53,30 @@ public class Purtb extends EntityBase {
private String tb016;
@ApiModelProperty("审核码")
private String tb025;
/**
* 销售单别
*/
@ApiModelProperty("销售单别")
private String tb029;
/**
* 销售单号
*/
@ApiModelProperty("销售单号")
private String tb030;
/**
* 销售序号
*/
@ApiModelProperty("销售序号")
private String tb031;
/**
* 急料
*/
@ApiModelProperty("急料")
private String tb032;
@ApiModelProperty("结束")
private String tb039;
@ApiModelProperty("采购单位")
private String tb015;
@ApiModelProperty("采购单价")
private BigDecimal tb017;
@ApiModelProperty("采购金额")
......@@ -69,8 +87,19 @@ public class Purtb extends EntityBase {
private String tb043;
@ApiModelProperty("计价数量")
private String tb044;
/**
* 客户订单号
*/
@ApiModelProperty("客户订单号")
private String udf01;
/**
* 工单品号
*/
@ApiModelProperty("工单品号")
private String udf04;
/**
* 委外产品图号
*/
@ApiModelProperty("委外产品图号")
private String udf10;
@ApiModelProperty("委外加工数量")
......
package com.topsunit.scanservice.ximai.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.topsunit.scanservice.ximai.common.TopsunitException;
import com.topsunit.scanservice.ximai.dao.*;
import com.topsunit.scanservice.ximai.dto.*;
import com.topsunit.scanservice.ximai.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Calendar;
import java.util.concurrent.atomic.AtomicReference;
/**
* 完工入库申请服务
*/
@Service
public class MoctfService {
@Autowired
private MoctfDao moctfDao;
@Autowired
private MoctgDao moctgDao;
@Autowired
private InvmbDao invmbDao;
@Autowired
private InvmcDao invmcDao;
@Autowired
private MoctaDao moctaDao;
@Transactional
public void create(MoctfCreateParams create){
Moctf moctf = BeanUtil.toBeanIgnoreError(create, Moctf.class);
Calendar curr = Calendar.getInstance();
String currStr = DateUtil.format(curr.getTime(), "yyyyMMdd");
moctf.setTf003(currStr);
moctf.setTf012(currStr);
AtomicReference<String> ta083 = new AtomicReference<String>();
create.getDetails().forEach(s->{
Moctg moctg = BeanUtil.toBeanIgnoreError(s, Moctg.class);
//查询工单
Mocta mocta = moctaDao.findById(new MoctaId(s.getTg014(), s.getTg015())).orElseThrow(()->new TopsunitException(String.format("未找到对应工单%s,%s",s.getTg014(),s.getTg015())));
//查询物料
Invmb invmb = invmbDao.findById(mocta.getTa006()).orElseThrow(()->new TopsunitException(String.format("未找到对应物料:%s", s.getTg004())));
moctg.setTg004(invmb.getMb001());
moctg.setTg005(invmb.getMb002());
moctg.setTg006(invmb.getMb003());
moctg.setTg007(invmb.getMb004());
moctg.setTg037(invmb.getMb004());
moctg.setTg010(invmb.getMb017());
ta083.set(mocta.getTa083());
//查询物料默认仓库
Invmc invmc = invmcDao.findById(new InvmcId(invmb.getMb001(), invmb.getMb017())).orElseThrow(()->new TopsunitException(String.format("未找到对应物料默认库:%s,%s", invmb.getMb001(), invmb.getMb017())));
moctg.setTg036(invmc.getMc015());
moctg.setTg030(currStr);
moctgDao.save(moctg);
});
moctf.setTf033(ta083.get());
moctf.setTf023(create.getDetails().get(0).getTg011());
moctf.setTf024(create.getDetails().get(0).getTg011());
moctfDao.save(moctf);
}
}
package com.topsunit.scanservice.ximai.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.topsunit.scanservice.ximai.common.TopsunitException;
import com.topsunit.scanservice.ximai.dao.*;
import com.topsunit.scanservice.ximai.dto.PurmaCriteria;
import com.topsunit.scanservice.ximai.dto.PurmaDto;
import com.topsunit.scanservice.ximai.dto.PurtaCreateDto;
import com.topsunit.scanservice.ximai.dto.mapper.PurmaMapper;
import com.topsunit.scanservice.ximai.dto.mapper.PurtgMapper;
import com.topsunit.scanservice.ximai.dto.PurtaCreateParams;
import com.topsunit.scanservice.ximai.dto.PurtrCreateParams;
import com.topsunit.scanservice.ximai.entity.*;
import com.topsunit.scanservice.ximai.security.CurrentActor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.ArrayList;
import java.util.List;
import java.math.BigDecimal;
import java.util.Calendar;
/**
* <p>Title: PurtaService</p>
......@@ -39,17 +31,38 @@ public class PurtaService {
PurtbDao purtbDao;
@Autowired
PurtrDao purtrDao;
@Autowired
MoctaDao moctaDao;
@Transactional
public void create(PurtaCreateDto create){
public void create(PurtaCreateParams create){
Mocta mocta = moctaDao.findById(new MoctaId(create.getOrderSource(), create.getWorkorderCode()))
.orElseThrow(()->new TopsunitException(String.format("未找到工单:%s-%s",create.getOrderSource(), create.getWorkorderCode())));
Calendar curr = Calendar.getInstance();
String currStr = DateUtil.format(curr.getTime(), "yyyyMMdd");
Purta purta = BeanUtil.toBeanIgnoreError(create, Purta.class);
purta.setUdf02(mocta.getUdf03());
purta.setUdf03(mocta.getTa027());
purta.setTa003(currStr);
purta.setTa013(currStr);
purtaDao.save(purta);
create.getDetails().forEach(s->{
Purtb purtb = BeanUtil.toBeanIgnoreError(s, Purtb.class);
purtb.setTb001(create.getTa001());
purtb.setTb002(create.getTa002());
purtb.setTb032(mocta.getTa044());
purtb.setUdf01(mocta.getUdf03());
purtb.setUdf04(mocta.getTa006());
purtb.setUdf10(mocta.getUdf08());
purtb.setTb029(mocta.getTa026());
purtb.setTb030(mocta.getTa027());
purtb.setTb031(mocta.getTa028());
purtbDao.save(purtb);
});
create.getDetails2().forEach(s->{
Purtr purtr = BeanUtil.toBeanIgnoreError(s, Purtr.class);
Purtr purtr = BeanUtil.toBeanIgnoreError(new PurtrCreateParams(), Purtr.class);
purtr.setTr002(purtb.getTb002());
purtr.setTr006(new BigDecimal(purtb.getUdf11()));
purtr.setTr013(purtb.getTb011());
purtr.setTr015(mocta.getTa044());
purtrDao.save(purtr);
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment