TempService.java 4.75 KB
package com.huaheng.api.backPass;

import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.math.BigDecimal;

/***
 * @author tongzonghao
 *
 */
@Service
public class TempService {

    @Resource
    private ReceiptHeaderService receiptHeaderService;
    @Resource
    private ShipmentHeaderService shipmentHeaderService;
    @Resource
    private ShipmentDetailService shipmentDetailService;
    @Resource
    private ReceiptDetailService receiptDetailService;
    @Resource
    private MaterialService materialService;

    @Transactional(rollbackFor = Exception.class)
    public AjaxResult createBillBy(ReceiptDetail receiptDetail1, Integer semiInt) {
        ReceiptDetail receiptDetailByRollNumber = receiptDetailService.getReceiptDetailByRollNumber(receiptDetail1.getRollNumber(), ShiroUtils.getZoneCode());
        if (receiptDetailByRollNumber != null) {
            return AjaxResult.success();
        }
        //不是半自动就不创建单据
        if (semiInt != 1) {
            return AjaxResult.success();
        }
        String materialCode = receiptDetail1.getMaterialCode();
        String rollNumber = receiptDetail1.getRollNumber();
        Material material = materialService.getMaterialByCode(materialCode, QuantityConstant.WAREHOUSECODE);
        if (material == null) {
            material = new Material();
            material.setCode(materialCode);
            material.setName(materialCode);
            material.setSpec(materialCode);
            material.setUnit(materialCode);
            material.setCompanyCode(QuantityConstant.COMPANYCODE);
            materialService.addSave(material);
        }
        String code = receiptHeaderService.createCode("DE", ShiroUtils.getZoneCode());
        ReceiptHeader receiptHeader = new ReceiptHeader();
        receiptHeader.setReceiptType("DE");
        receiptHeader.setCode(code);
        receiptHeader.setWarehouseCode(QuantityConstant.WAREHOUSECODE);
        receiptHeader.setZoneCode(ShiroUtils.getZoneCode());
        receiptHeader.setCompanyCode(QuantityConstant.COMPANYCODE);
        receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
        receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
        receiptHeader.setTotalLines(BigDecimal.ONE.intValue());
        receiptHeader.setTotalQty(receiptDetail1.getQty());
        receiptHeader.setCreatedBy("半自动创建");
        receiptHeader.setCreated(DateUtils.getNowDate());
        receiptHeader.setLastUpdatedBy("半自动创建");
        receiptHeader.setLastUpdated(DateUtils.getNowDate());
        receiptHeaderService.save(receiptHeader);
        ReceiptDetail receiptDetail = new ReceiptDetail();
        receiptDetail.setReceiptId(receiptHeader.getId());
        receiptDetail.setReceiptCode(receiptHeader.getCode());
        receiptDetail.setCompanyCode(QuantityConstant.COMPANYCODE);
        receiptDetail.setWarehouseCode(QuantityConstant.WAREHOUSECODE);
        receiptDetail.setInventorySts(QuantityConstant.GOOD);
        receiptDetail.setMaterialCode(material.getCode());
        receiptDetail.setMaterialName(material.getName());
        receiptDetail.setMaterialSpec(material.getSpec());
        receiptDetail.setMaterialUnit(material.getUnit());
        receiptDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_BUILD.toString());
        receiptDetail.setRollNumber(rollNumber);
        receiptDetail.setQty(receiptDetail1.getQty());
        if (receiptDetail.getQty() == null) {
            receiptDetail.setQty(BigDecimal.ONE);
        } else {
            receiptDetail.setQty(receiptDetail1.getQty());
        }

        receiptDetail.setTaskQty(BigDecimal.ZERO);
        receiptDetail.setCreatedBy("半自动创建");
        receiptDetail.setCreated(DateUtils.getNowDate());
        receiptDetail.setLastUpdatedBy("半自动创建");
        receiptDetail.setLastUpdated(DateUtils.getNowDate());
        receiptDetailService.save(receiptDetail);
        return AjaxResult.success();
    }

}