供应链-采购管理

This commit is contained in:
gaowdong 2025-07-02 09:30:56 +08:00
parent c8e3ca6f11
commit 5b2e614af3
5 changed files with 65 additions and 27 deletions

View File

@ -1,9 +1,11 @@
package com.bonus.canteen.core.ims.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import cn.hutool.core.collection.CollUtil;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractQuery;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate;
@ -92,9 +94,7 @@ public class PurchaseContractController extends BaseController {
@PostMapping
public AjaxResult add(@RequestBody @Valid PurchaseContractAdd purchaseContractAdd) {
try {
PurchaseContract purchaseContract = new PurchaseContract();
BeanUtils.copyProperties(purchaseContractAdd, purchaseContract);
return toAjax(purchaseContractService.insertPurchaseContract(purchaseContract));
return toAjax(purchaseContractService.insertPurchaseContract(purchaseContractAdd));
} catch (Exception e) {
return error(e.getMessage());
}
@ -110,9 +110,7 @@ public class PurchaseContractController extends BaseController {
@PostMapping("/edit")
public AjaxResult edit(@RequestBody @Valid PurchaseContractUpdate purchaseContractUpdate) {
try {
PurchaseContract purchaseContract = new PurchaseContract();
BeanUtils.copyProperties(purchaseContractUpdate, purchaseContract);
return toAjax(purchaseContractService.updatePurchaseContract(purchaseContract));
return toAjax(purchaseContractService.updatePurchaseContract(purchaseContractUpdate));
} catch (Exception e) {
return error(e.getMessage());
}

View File

@ -60,5 +60,8 @@ public class PurchaseContractDetailAdd implements Serializable {
@ApiModelProperty(value = "计量单位名称")
private String unitName;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -60,5 +60,7 @@ public class PurchaseContractDetailUpdate implements Serializable {
@ApiModelProperty(value = "计量单位名称")
private String unitName;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -2,6 +2,8 @@ package com.bonus.canteen.core.ims.service;
import java.util.List;
import com.bonus.canteen.core.ims.domain.PurchaseContract;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate;
import com.bonus.canteen.core.ims.domain.vo.PurchaseContractVO;
/**
@ -30,18 +32,18 @@ public interface IPurchaseContractService {
/**
* 新增采购合同主
*
* @param purchaseContract 采购合同主
* @param purchaseContractAdd 采购合同主
* @return 结果
*/
public int insertPurchaseContract(PurchaseContract purchaseContract);
public int insertPurchaseContract(PurchaseContractAdd purchaseContractAdd);
/**
* 修改采购合同主
*
* @param purchaseContract 采购合同主
* @param purchaseContractUpdate 采购合同主
* @return 结果
*/
public int updatePurchaseContract(PurchaseContract purchaseContract);
public int updatePurchaseContract(PurchaseContractUpdate purchaseContractUpdate);
/**
* 批量删除采购合同主

View File

@ -9,6 +9,11 @@ import cn.hutool.core.collection.CollUtil;
import com.bonus.canteen.core.ims.domain.PurchaseContractDetail;
import com.bonus.canteen.core.ims.domain.constants.ApproveStatusEnum;
import com.bonus.canteen.core.ims.domain.constants.PurchaseContractStatusEnum;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractDetailAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractDetailUpdate;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate;
import com.bonus.canteen.core.ims.domain.vo.PurchaseContractDetailVO;
import com.bonus.canteen.core.ims.domain.vo.PurchaseContractVO;
import com.bonus.canteen.core.ims.service.IPurchaseContractDetailService;
import com.bonus.canteen.core.ims.utils.NoGenerateUtils;
@ -49,10 +54,20 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
if(Objects.nonNull(purchaseContract)) {
PurchaseContractDetail purchaseContractDetail = new PurchaseContractDetail();
purchaseContractDetail.setContractId(contractId);
purchaseContract.setPurchaseContractDetailList(inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail));
List<PurchaseContractDetail> purchaseContractDetails = inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail);
purchaseContract.setPurchaseContractDetailList(purchaseContractDetails);
calContractStatus(purchaseContract);
purchaseContractVO = new PurchaseContractVO();
BeanUtils.copyProperties(purchaseContract, purchaseContractVO);
if(CollUtil.isNotEmpty(purchaseContractDetails)) {
List<PurchaseContractDetailVO> purchaseContractDetailVOList = new ArrayList<>();
purchaseContractDetails.forEach(detail -> {
PurchaseContractDetailVO purchaseContractDetailVO = new PurchaseContractDetailVO();
BeanUtils.copyProperties(detail, purchaseContractDetailVO);
purchaseContractDetailVOList.add(purchaseContractDetailVO);
});
purchaseContractVO.setPurchaseContractDetailList(purchaseContractDetailVOList);
}
}
return purchaseContractVO;
}
@ -71,10 +86,20 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
for(PurchaseContract contract : purchaseContracts) {
PurchaseContractDetail purchaseContractDetail = new PurchaseContractDetail();
purchaseContractDetail.setContractId(contract.getContractId());
contract.setPurchaseContractDetailList(inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail));
List<PurchaseContractDetail> purchaseContractDetailList = inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail);
contract.setPurchaseContractDetailList(purchaseContractDetailList);
calContractStatus(contract);
PurchaseContractVO purchaseContractVO = new PurchaseContractVO();
BeanUtils.copyProperties(contract, purchaseContractVO);
if(CollUtil.isNotEmpty(purchaseContractDetailList)) {
List<PurchaseContractDetailVO> purchaseContractDetailVOList = new ArrayList<>();
purchaseContractDetailList.forEach(detail -> {
PurchaseContractDetailVO purchaseContractDetailVO = new PurchaseContractDetailVO();
BeanUtils.copyProperties(detail, purchaseContractDetailVO);
purchaseContractDetailVOList.add(purchaseContractDetailVO);
});
purchaseContractVO.setPurchaseContractDetailList(purchaseContractDetailVOList);
}
purchaseContractVOList.add(purchaseContractVO);
}
}
@ -99,12 +124,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
/**
* 新增采购合同主
*
* @param purchaseContract 采购合同主
* @param purchaseContractAdd 采购合同主
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int insertPurchaseContract(PurchaseContract purchaseContract) {
public int insertPurchaseContract(PurchaseContractAdd purchaseContractAdd) {
PurchaseContract purchaseContract = new PurchaseContract();
BeanUtils.copyProperties(purchaseContractAdd, purchaseContract);
purchaseContract.setContractId(null);
purchaseContract.setCreateTime(DateUtils.getNowDate());
purchaseContract.setCreateBy(SecurityUtils.getUsername());
@ -113,12 +140,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
purchaseContract.setContractCode(contractCode);
purchaseContract.setApproveStatus(ApproveStatusEnum.APPROVED.getKey());
int result = purchaseContractMapper.insertPurchaseContract(purchaseContract);
List<PurchaseContractDetail> purchaseContractDetails = purchaseContract.getPurchaseContractDetailList();
List<PurchaseContractDetailAdd> purchaseContractDetails = purchaseContractAdd.getPurchaseContractDetailList();
if(CollUtil.isNotEmpty(purchaseContractDetails)) {
for(PurchaseContractDetail purchaseContractDetail : purchaseContractDetails) {
purchaseContractDetail.setContractId(purchaseContract.getContractId());
purchaseContractDetail.setContractCode(contractCode);
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseContractDetail);
for(PurchaseContractDetailAdd purchaseContractDetailAdd : purchaseContractDetails) {
PurchaseContractDetail purchaseDetailContract = new PurchaseContractDetail();
BeanUtils.copyProperties(purchaseContractDetailAdd, purchaseDetailContract);
purchaseDetailContract.setContractId(purchaseContract.getContractId());
purchaseDetailContract.setContractCode(contractCode);
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseDetailContract);
}
}
return result;
@ -130,12 +159,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
/**
* 修改采购合同主
*
* @param purchaseContract 采购合同主
* @param purchaseContractUpdate 采购合同主
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int updatePurchaseContract(PurchaseContract purchaseContract) {
public int updatePurchaseContract(PurchaseContractUpdate purchaseContractUpdate) {
PurchaseContract purchaseContract = new PurchaseContract();
BeanUtils.copyProperties(purchaseContractUpdate, purchaseContract);
if(Objects.isNull(purchaseContract.getContractId())) {
throw new ServiceException("采购合同ID不能为空");
}
@ -150,12 +181,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
purchaseContract.setUpdateBy(SecurityUtils.getUsername());
try {
inspectGoodsDetailService.deletePurchaseContractDetailByContractId(purchaseContract.getContractId());
List<PurchaseContractDetail> purchaseContractDetails = purchaseContract.getPurchaseContractDetailList();
if(CollUtil.isNotEmpty(purchaseContractDetails)) {
for(PurchaseContractDetail purchaseContractDetail : purchaseContractDetails) {
purchaseContractDetail.setContractId(purchaseContract.getContractId());
purchaseContractDetail.setContractCode(purchaseContractVO.getContractCode());
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseContractDetail);
List<PurchaseContractDetailUpdate> purchaseContractDetailsUpdate = purchaseContractUpdate.getPurchaseContractDetailList();
if(CollUtil.isNotEmpty(purchaseContractDetailsUpdate)) {
for(PurchaseContractDetailUpdate purchaseContractDetailUpdate : purchaseContractDetailsUpdate) {
PurchaseContractDetail purchaseDetailContract = new PurchaseContractDetail();
BeanUtils.copyProperties(purchaseContractDetailUpdate, purchaseDetailContract);
purchaseDetailContract.setContractId(purchaseContract.getContractId());
purchaseDetailContract.setContractCode(purchaseContractVO.getContractCode());
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseDetailContract);
}
}
return purchaseContractMapper.updatePurchaseContract(purchaseContract);