Commit 8757a1d3 authored by 李驰骋's avatar 李驰骋

采购到购默认值添加

parent 36b6969c
......@@ -7,6 +7,8 @@ import com.topsunit.scanservice.ximai.entity.CoptnId;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
* <p>Title: CopthDao</p>
* <p>Description: CopthDao</p>
......@@ -17,6 +19,6 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
*/
public interface CopthDao extends JpaRepository<Copth, CopthId>, JpaSpecificationExecutor<Copth> {
public List<Copth> findByTh045AndTh046(String th045,String th046);
}
......@@ -22,7 +22,7 @@ public interface InvmlDao extends JpaRepository<Invml, InvmlId>, JpaSpecificatio
List<Invml> findByMl001OrderByMl002AscMl003AscMl004Asc(String ml001);
List<Invml> findByMl001InOrderByMl002AscMl003AscMl004Asc(List<String> ml001List);
@Query(value = "select il.*,ib.MB002 materialName from INVML il left join INVMB ib on il.ML001 = ib.MB001 where il.ML001 = :ml001 and il.ML002 = :ml002", nativeQuery = true)
@Query(value = "select il.*,ib.MB002 materialName from INVML il left join INVMB ib on il.ML001 = ib.MB001 where il.ML001 = :ml001 and ('' = ISNULL(CONVERT(varchar(200), :ml002),'') or il.ML002 = :ml002)", nativeQuery = true)
List<IInvmlDto> findJoinInvmb(@Param(value = "ml001") String ml001, @Param(value = "ml002") String ml002);
......
......@@ -5,6 +5,8 @@ import com.topsunit.scanservice.ximai.entity.PurtcId;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Optional;
/**
* <p>Title: PurtcDao</p>
* <p>Description: PurtcDao</p>
......@@ -14,4 +16,5 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @date 2021/10/22
*/
public interface PurtcDao extends JpaRepository<Purtc, PurtcId>, JpaSpecificationExecutor<Purtc> {
public Optional<Purtc> findFirstByTc001AndTc002(String tc001,String tc002);
}
......@@ -9,6 +9,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
......@@ -28,18 +29,22 @@ public class PurccCreateParams {
private String cc002;
@ApiModelProperty("日期")
private String cc003;
@ApiModelProperty("")
@ApiModelProperty("工厂编码")
private String cc004;
@ApiModelProperty("供货商号")
private String cc005;
@ApiModelProperty("")
private String cc006;
@ApiModelProperty("")
private String cc009;
@ApiModelProperty("")
@ApiModelProperty("打印方式")
private String cc008="1";
@ApiModelProperty("审核状态")
private String cc009="N";
@ApiModelProperty("单据日期")
private String cc010;
@ApiModelProperty("供货商名称")
private String cc012;
@ApiModelProperty("表身到货总数量")
private BigDecimal cc013;
@ApiModelProperty("")
private String cc026;
@ApiModelProperty("库房标识")
......
......@@ -21,13 +21,15 @@ public class PurccDto {
private String cc002;
@ApiModelProperty("日期")
private String cc003;
@ApiModelProperty("")
@ApiModelProperty("工厂编码")
private String cc004;
@ApiModelProperty("供货商号")
private String cc005;
@ApiModelProperty("")
private String cc006;
@ApiModelProperty("")
@ApiModelProperty("打印方式")
private String cc008;
@ApiModelProperty("审核状态")
private String cc009;
@ApiModelProperty("供货商名称")
private String cc012;
......
......@@ -43,25 +43,29 @@ public class PurcdCreateParams {
private String cd011;
@ApiModelProperty("采购序号")
private String cd012;
@ApiModelProperty("到货数量")
private BigDecimal cd013;
@ApiModelProperty("")
private String cd017;
@ApiModelProperty("")
private BigDecimal cd018;
private BigDecimal cd018=BigDecimal.ZERO;
@ApiModelProperty("")
private BigDecimal cd019;
private BigDecimal cd019=BigDecimal.ZERO;
@ApiModelProperty("")
private BigDecimal cd020;
private BigDecimal cd020=BigDecimal.ZERO;
@ApiModelProperty("")
private BigDecimal cd026;
private BigDecimal cd026=BigDecimal.ZERO;
@ApiModelProperty("")
private BigDecimal cd027;
private BigDecimal cd027=BigDecimal.ZERO;
@ApiModelProperty("")
private BigDecimal cd028;
private BigDecimal cd028=BigDecimal.ZERO;
@ApiModelProperty("")
private BigDecimal cd029;
private BigDecimal cd029=BigDecimal.ZERO;
@ApiModelProperty("")
private String cd034="N";
@ApiModelProperty("")
private String cd035="";
@ApiModelProperty("图号")
private String udf01;
@ApiModelProperty("")
private String udf02;
......
......@@ -7,7 +7,7 @@ import java.math.BigDecimal;
import java.util.List;
/**
* 销售出库参数
* 采购到货参数
*/
@Data
public class StockArrivalParams {
......
......@@ -27,7 +27,7 @@ public class Purcc extends EntityBase {
@ApiModelProperty("日期")
private String cc003;
@Column
@ApiModelProperty("")
@ApiModelProperty("工厂编码")
private String cc004;
@Column
@ApiModelProperty("供货商号")
......@@ -36,10 +36,13 @@ public class Purcc extends EntityBase {
@ApiModelProperty("")
private String cc006;
@Column
@ApiModelProperty("")
@ApiModelProperty("打印方式")
private String cc008;
@Column
@ApiModelProperty("审核状态")
private String cc009;
@Column
@ApiModelProperty("")
@ApiModelProperty("单据日期")
private String cc010;
@Column
@ApiModelProperty("供货商名称")
......@@ -48,6 +51,6 @@ public class Purcc extends EntityBase {
@ApiModelProperty("")
private String cc026;
@Column
@ApiModelProperty("库房标识")
@ApiModelProperty("到货库房")
private String udf01;
}
package com.topsunit.scanservice.ximai.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
......@@ -42,6 +43,12 @@ public class Purcd extends EntityBase {
private String cd011;
@Column
private String cd012;
@ApiModelProperty("数量")
private BigDecimal cd013;
@ApiModelProperty("采购单位")
private String cd015;
@ApiModelProperty("到货仓")
private String cd016;
@Column
private String cd017;
@Column
......@@ -61,6 +68,9 @@ public class Purcd extends EntityBase {
@Column
private String cd034;
@Column
private String cd035;
@Column
@ApiModelProperty("图号")
private String udf01;
@Column
private String udf02;
......
package com.topsunit.scanservice.ximai.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
......@@ -14,57 +17,28 @@ import java.math.BigDecimal;
* @version V1.0
* @date 2021/10/22
*/
@Data
@Entity
@IdClass(PurtcId.class)
public class Purtc extends EntityBase {
@Id
@ApiModelProperty("采购单别")
private String tc001;
@Id
@ApiModelProperty("采购单号")
private String tc002;
@ApiModelProperty("供应商")
private String tc004;
@ApiModelProperty("工厂")
private String tc010;
@Column
@ApiModelProperty("税种")
private String tc018;
@Column
@ApiModelProperty("增值税率")
private BigDecimal tc026;
@Column
@ApiModelProperty("付款条件编号")
private String tc027;
public String getTc001() {
return tc001;
}
public void setTc001(String tc001) {
this.tc001 = tc001;
}
public String getTc002() {
return tc002;
}
public void setTc002(String tc002) {
this.tc002 = tc002;
}
public String getTc018() {
return tc018;
}
public void setTc018(String tc018) {
this.tc018 = tc018;
}
public BigDecimal getTc026() {
return tc026;
}
public void setTc026(BigDecimal tc026) {
this.tc026 = tc026;
}
public String getTc027() {
return tc027;
}
public void setTc027(String tc027) {
this.tc027 = tc027;
}
}
......@@ -22,13 +22,20 @@ import java.math.BigDecimal;
@IdClass(PurtdId.class)
public class Purtd extends EntityBase {
@Id
@ApiModelProperty("采购单别")
private String td001;
@Id
@ApiModelProperty("采购单号")
private String td002;
@Id
@ApiModelProperty("序号")
private String td003;
@ApiModelProperty("品号")
private String td004;
@ApiModelProperty("交货仓库")
private String td007;
@ApiModelProperty("单位")
private String td009;
@Column
private BigDecimal td010;
@Column
......
......@@ -13,6 +13,7 @@ import org.hibernate.service.spi.ServiceException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
......@@ -31,6 +32,7 @@ public class CopthService {
@Autowired
private CoptoDao coptoDao;
@Transactional
public void create(StockSaleOutParams params){
Coptn coptn = coptnDao.findFirstByTn001AndTn002("251", params.getApplyNo())
.orElseThrow(()->new ServiceException("未找到出货通知单:"+params.getApplyNo()));
......
package com.topsunit.scanservice.ximai.service;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.topsunit.scanservice.ximai.dao.CoptgDao;
import com.topsunit.scanservice.ximai.dao.CopthDao;
import com.topsunit.scanservice.ximai.dao.CoptoDao;
import com.topsunit.scanservice.ximai.dto.StockSaleOutDto;
import com.topsunit.scanservice.ximai.dto.StockSaleOutQueryParams;
import com.topsunit.scanservice.ximai.entity.Copth;
import com.topsunit.scanservice.ximai.entity.Copto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class CoptoService {
@Autowired
private CoptoDao coptoDao;
@Autowired
private CopthDao copthDao;
public StockSaleOutDto getStockSaleOutDto(StockSaleOutQueryParams params){
StockSaleOutDto rst = new StockSaleOutDto();
List<StockSaleOutDto.StockSaleOutDetail> data = new ArrayList<>();
List<Copto> list = coptoDao.findByTo001AndTo002("251", params.getSaleOutNo());
//查询已出库通知单数据,扣减相应数量
Map<String, List<Copth>> copthMap = copthDao.findByTh045AndTh046("251", params.getSaleOutNo()).stream()
.collect(Collectors.groupingBy(s->StrUtil.trim(s.getTh004())));
Map<String, BigDecimal> copthQuantityMap = new HashMap<>();
copthMap.forEach((k,v)->{
copthQuantityMap.put(k, BigDecimal.ZERO);
v.forEach(s->{
copthQuantityMap.put(k, copthQuantityMap.get(k).add(s.getTh008()));
});
});
list.forEach(s->{
StockSaleOutDto.StockSaleOutDetail saleOutDetail = new StockSaleOutDto.StockSaleOutDetail();
saleOutDetail.setDeliverQuantity(s.getTo017());
if(copthQuantityMap.containsKey(StrUtil.trim(s.getTo007()))){
BigDecimal tempQuantity = NumberUtil.max(s.getTo017().subtract(copthQuantityMap.get(StrUtil.trim(s.getTo007()))), BigDecimal.ZERO);
saleOutDetail.setDeliverQuantity(tempQuantity);
}else{
saleOutDetail.setDeliverQuantity(s.getTo017());
}
saleOutDetail.setPlanOutDate(s.getUdf01());
saleOutDetail.setMaterialName(StrUtil.trim(s.getTo008()));
saleOutDetail.setMaterialNo(StrUtil.trim(s.getTo007()));
......
......@@ -15,6 +15,7 @@ import org.apache.commons.lang3.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;
......@@ -50,6 +51,7 @@ public class InvtaService {
* 创建盘点交易单据
* @param params
*/
@Transactional
public void createInvtaByStockTaking(StockTakingParams params){
List<StockTakingParams.StockTakingDetail> data = params.getData();
//分组盘盈与盘亏
......@@ -76,6 +78,7 @@ public class InvtaService {
* 创建调拨交易单据
* @param params
*/
@Transactional
public void createInvtaByStockAllocate(StockAllocateParams params){
List<StockTransactionParams> tempData = new ArrayList<>();
List<StockAllocateParams.StockAllocateDetail> data = params.getData();
......
package com.topsunit.scanservice.ximai.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.topsunit.scanservice.ximai.common.*;
import com.topsunit.scanservice.ximai.dao.*;
......@@ -41,7 +42,11 @@ public class PurccService {
@Autowired
private InvmbDao invmbDao;
@Autowired
private PurtcDao purtcDao;
@Autowired
private WarehouseArriveDao warehouseArriveDao;
@Autowired
private PurmaDao purmaDao;
private static String DATA_TYPE = "3701";
......@@ -218,17 +223,35 @@ public class PurccService {
return byMc001.stream().findFirst();
}
@Transactional
public void create(StockArrivalParams stockArrivalParams){
if(CollectionUtil.isEmpty(stockArrivalParams.getDetails())){
throw new TopsunitException("采购到货明细不能为空");
}
//查询任意采购单
StockArrivalParams.StockArrivalDetail stockArrivalDetail = stockArrivalParams.getDetails().get(0);
Purtc purtc = purtcDao.findFirstByTc001AndTc002(stockArrivalDetail.getPurchaseType(), stockArrivalDetail.getPurchaseNo())
.orElseThrow(()->new TopsunitException(String.format("未找到采购订单%s,%s", stockArrivalDetail.getPurchaseType(), stockArrivalDetail.getPurchaseNo())));
Purcc purcc = BeanUtil.copyProperties(new PurccCreateParams(), Purcc.class);
Calendar curr = Calendar.getInstance();
String currStr = cn.hutool.core.date.DateUtil.format(curr.getTime(), "yyyyMMdd");
Optional<Purma> purmaOp = purmaDao.findById(purtc.getTc004());
purcc.setCc003(currStr);
purcc.setCc010(currStr);
purcc.setCc004(purtc.getTc010());
purcc.setCc005(purtc.getTc004());
if(purmaOp.isPresent()){
purcc.setCc012(purmaOp.get().getMa003());
}
purcc.setCc001(DATA_TYPE);
purcc.setCc002(this.getNewCc002(DATA_TYPE));
purcc.setUdf01(stockArrivalParams.getWarehouse());
purccDao.save(purcc);
int i=1;
for(StockArrivalParams.StockArrivalDetail detail : stockArrivalParams.getDetails()){
Purtd purtd = purtdDao.findFirstByTd001AndTd002AndTd003(detail.getPurchaseType(), detail.getPurchaseNo(), detail.getPurchaseSerial())
.orElseThrow(()->new TopsunitException(String.format("未找到采购订单%s,%s,%s", detail.getPurchaseType(), detail.getPurchaseNo(), detail.getPurchaseSerial())));
Invmb invmb = invmbDao.findById(detail.getMaterialNo()).orElseThrow(()->new TopsunitException("未找到物料:"+detail.getMaterialNo()));
Purcd purcd = BeanUtil.copyProperties(new PurcdCreateParams(), Purcd.class);
purcd.setCd001(purcc.getCc001());
......@@ -242,6 +265,9 @@ public class PurccService {
purcd.setCd010(detail.getPurchaseType());
purcd.setCd011(detail.getPurchaseNo());
purcd.setCd012(detail.getPurchaseSerial());
purcd.setCd013(detail.getArrivalQuantity());
purcd.setCd015(purtd.getTd009());
purcd.setCd016(purtd.getTd007());
purcdDao.save(purcd);
i++;
}
......
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