TempService.java 6.91 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.domain.ShipmentDetail;
import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
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);
        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);

        String code1 = shipmentHeaderService.createCode("ELO");
        ShipmentHeader shipmentHeader = new ShipmentHeader();
        shipmentHeader.setShipmentType("ELO");
        shipmentHeader.setCode(code1);
        shipmentHeader.setWarehouseCode(QuantityConstant.WAREHOUSECODE);
        shipmentHeader.setZoneCode(ShiroUtils.getZoneCode());
        shipmentHeader.setCompanyCode(QuantityConstant.COMPANYCODE);
        shipmentHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
        shipmentHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
        shipmentHeader.setTotalLines(BigDecimal.ONE.intValue());
        shipmentHeader.setTotalQty(BigDecimal.ONE);
        shipmentHeader.setCreatedBy("半自动创建");
        shipmentHeader.setCreated(DateUtils.getNowDate());
        shipmentHeader.setLastUpdatedBy("半自动创建");
        shipmentHeader.setLastUpdated(DateUtils.getNowDate());
        shipmentHeaderService.save(shipmentHeader);
        ShipmentDetail shipmentDetail = new ShipmentDetail();
        shipmentDetail.setShipmentId(shipmentHeader.getId());
        shipmentDetail.setShipmentCode(shipmentHeader.getCode());
        shipmentDetail.setCompanyCode(QuantityConstant.COMPANYCODE);
        shipmentDetail.setWarehouseCode(QuantityConstant.WAREHOUSECODE);
        shipmentDetail.setInventorySts(QuantityConstant.GOOD);
        shipmentDetail.setMaterialCode(material.getCode());
        shipmentDetail.setMaterialName(material.getName());
        shipmentDetail.setMaterialSpec(material.getSpec());
        shipmentDetail.setMaterialUnit(material.getUnit());
        shipmentDetail.setProcessStamp(QuantityConstant.RECEIPT_HEADER_BUILD.toString());
        shipmentDetail.setRollNumber(rollNumber);
        shipmentDetail.setQty(BigDecimal.ONE);
        shipmentDetail.setTaskQty(BigDecimal.ZERO);
        shipmentDetail.setCreatedBy("半自动创建");
        shipmentDetail.setCreated(DateUtils.getNowDate());
        shipmentDetail.setLastUpdatedBy("半自动创建");
        shipmentDetail.setLastUpdated(DateUtils.getNowDate());
        shipmentDetailService.save(shipmentDetail);
        return AjaxResult.success();
    }

}