|
|
@@ -2,30 +2,36 @@ package com.usoftchina.saas.storage.service.impl;
|
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
+import com.usoftchina.saas.base.Result;
|
|
|
import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
|
|
|
import com.usoftchina.saas.commons.api.MaxnumberService;
|
|
|
import com.usoftchina.saas.commons.api.MessageLogService;
|
|
|
+import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
|
|
|
import com.usoftchina.saas.commons.dto.DocBaseDTO;
|
|
|
import com.usoftchina.saas.commons.dto.ListReqDTO;
|
|
|
import com.usoftchina.saas.commons.exception.BizExceptionCode;
|
|
|
import com.usoftchina.saas.commons.po.BillCodeSeq;
|
|
|
import com.usoftchina.saas.commons.po.Status;
|
|
|
import com.usoftchina.saas.context.BaseContextHolder;
|
|
|
+import com.usoftchina.saas.document.api.WarehouseApi;
|
|
|
import com.usoftchina.saas.exception.BizException;
|
|
|
import com.usoftchina.saas.page.PageRequest;
|
|
|
import com.usoftchina.saas.storage.dto.MakeListDTO;
|
|
|
import com.usoftchina.saas.storage.mapper.MakeMapper;
|
|
|
import com.usoftchina.saas.storage.mapper.MakeMaterialMapper;
|
|
|
+import com.usoftchina.saas.storage.mapper.ProdIODetailMapper;
|
|
|
+import com.usoftchina.saas.storage.mapper.ProdInOutMapper;
|
|
|
import com.usoftchina.saas.storage.po.Make;
|
|
|
import com.usoftchina.saas.storage.po.MakeMaterial;
|
|
|
+import com.usoftchina.saas.storage.po.ProdIODetail;
|
|
|
+import com.usoftchina.saas.storage.po.ProdInOut;
|
|
|
import com.usoftchina.saas.storage.service.MakeService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Service
|
|
|
public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> implements MakeService {
|
|
|
@@ -36,6 +42,12 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
private MaxnumberService maxnumberService;
|
|
|
@Autowired
|
|
|
private MessageLogService messageLogService;
|
|
|
+ @Autowired
|
|
|
+ private ProdInOutMapper prodInOutMapper;
|
|
|
+ @Autowired
|
|
|
+ private ProdIODetailMapper prodIODetailMapper;
|
|
|
+ @Autowired
|
|
|
+ private WarehouseApi warehouseApi;
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<Make> getList(PageRequest page, ListReqDTO listReqDTO) {
|
|
|
@@ -66,9 +78,6 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public DocBaseDTO saveOrUpdate(MakeListDTO makeListDTO) {
|
|
|
- //校验库存是否足够
|
|
|
- validStorage(makeListDTO);
|
|
|
-
|
|
|
Make make = makeListDTO.getMain();
|
|
|
List<MakeMaterial> makeMaterialList = makeListDTO.getItems();
|
|
|
DocBaseDTO docBaseDTO = null;
|
|
|
@@ -217,6 +226,346 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public DocBaseDTO audit(Long id) {
|
|
|
+ //1.获取主从表数据
|
|
|
+ Make make = getMapper().selectByPrimaryKey(id);
|
|
|
+ List<MakeMaterial> items = makeMaterialMapper.selectByFK(id, BaseContextHolder.getCompanyId());
|
|
|
+ MakeListDTO makeListDTO = new MakeListDTO(make, items);
|
|
|
+ //2.校验库存是否足够
|
|
|
+ validStorage(makeListDTO);
|
|
|
+ //3.生成 完工入库单和领料单 并 过账
|
|
|
+ generateProdIO(makeListDTO);
|
|
|
+ //4.修改单据状态
|
|
|
+ Make updateMake = new Make();
|
|
|
+ make.setMa_status(Status.AUDITED.getDisplay());
|
|
|
+ make.setMa_statuscode(Status.AUDITED.name());
|
|
|
+ make.setUpdateTime(new Date());
|
|
|
+ make.setUpdaterId(BaseContextHolder.getUserId());
|
|
|
+ DocBaseDTO docBaseDTO = generateMsgObj(id, make.getMa_code());
|
|
|
+ //5.记录LOG
|
|
|
+ messageLogService.audit(docBaseDTO);
|
|
|
+ return docBaseDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 1.生成 完工入库单和生产领料单
|
|
|
+ * 2.过账
|
|
|
+ * @param makeListDTO
|
|
|
+ */
|
|
|
+ private void generateProdIO(MakeListDTO makeListDTO) {
|
|
|
+ Make make = makeListDTO.getMain();
|
|
|
+ List<MakeMaterial> items = makeListDTO.getItems();
|
|
|
+ if ("组装".equals(make.getMa_type())){
|
|
|
+ /** 1.生产领料单 **/
|
|
|
+ //a.主表
|
|
|
+ ProdInOut prodInOut = new ProdInOut();
|
|
|
+ prodInOut.setPi_class("生产领料单");
|
|
|
+ String code = maxnumberService.getMaxnumber("MakeOut", true).getData();
|
|
|
+ prodInOut.setPi_inoutno(code);
|
|
|
+ prodInOut.setPi_date(new Date()); //出入库日期
|
|
|
+ //prodInOut.setPi_total(make.getMa_price());
|
|
|
+ prodInOut.setPi_recordmanid(BaseContextHolder.getUserId()); //录入人ID
|
|
|
+ prodInOut.setPi_recorddate(new Date()); //录入日期
|
|
|
+ prodInOut.setPi_auditdate(new Date()); //审核日期
|
|
|
+ prodInOut.setPi_auditman(""); //审核人
|
|
|
+ prodInOut.setPi_status(Status.UNAUDITED.getDisplay()); //单据状态
|
|
|
+ prodInOut.setPi_statuscode(Status.UNAUDITED.name()); //单据状态码
|
|
|
+ prodInOut.setPi_text1(make.getMa_code()); //自定义字段1 赋值为制造单号
|
|
|
+ prodInOut.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodInOut.setCreateTime(new Date());
|
|
|
+ prodInOut.setCreatorId(BaseContextHolder.getUserId()); //创建人ID
|
|
|
+ prodInOutMapper.insertSelective(prodInOut);
|
|
|
+ long pi_id = prodInOut.getId();
|
|
|
+ //b.从表
|
|
|
+ List<ProdIODetail> prodIODetailList = new ArrayList<ProdIODetail>();
|
|
|
+ int detno = 0;
|
|
|
+ for (MakeMaterial item : items){
|
|
|
+ detno++;
|
|
|
+ ProdIODetail prodIODetail = new ProdIODetail();
|
|
|
+ prodIODetail.setPd_piid(pi_id); //主表ID
|
|
|
+ prodIODetail.setPd_piclass("生产领料单");
|
|
|
+ prodIODetail.setPd_inoutno(code); //出入库单号
|
|
|
+ prodIODetail.setPd_pdno(detno); //出入库单序号
|
|
|
+ prodIODetail.setPd_ordercode(make.getMa_code()); //订单号
|
|
|
+ prodIODetail.setPd_orderdetno(item.getMm_detno()); //订单序号
|
|
|
+ prodIODetail.setPd_prodid(item.getMm_prodid()); //物料ID
|
|
|
+ prodIODetail.setPd_prodcode(item.getMm_prodcode()); //物料CODE
|
|
|
+ prodIODetail.setPd_outqty(item.getMm_qty()); //出库数
|
|
|
+ prodIODetail.setPd_price(item.getMm_price()); //成本单价 ???
|
|
|
+ prodIODetail.setPd_total(item.getMm_amount()); //金额
|
|
|
+ prodIODetail.setPd_whid(item.getMm_whid()); //仓库ID
|
|
|
+ prodIODetail.setPd_whcode(item.getMm_whcode()); //仓库CODE
|
|
|
+ prodIODetail.setPd_whname(item.getMm_whname()); //仓库名称
|
|
|
+ prodIODetail.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodIODetail.setPd_status(0); //单据状态
|
|
|
+ prodIODetailList.add(prodIODetail);
|
|
|
+ }
|
|
|
+ prodIODetailMapper.batchInsert(prodIODetailList);
|
|
|
+
|
|
|
+ //c.领料单过账
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ map.put("inoutNo", code);
|
|
|
+ map.put("class", "生产领料单");
|
|
|
+ map.put("commitid", BaseContextHolder.getUserId());
|
|
|
+ map.put("companyId", BaseContextHolder.getCompanyId());
|
|
|
+ map.put("result", null);
|
|
|
+ Result result = warehouseApi.post(map);
|
|
|
+ if (!StringUtils.isEmpty(result.getData())){
|
|
|
+ throw new BizException(76201, result.getData().toString());
|
|
|
+ }
|
|
|
+ /** 2.完工入库单 **/
|
|
|
+ //a.主表
|
|
|
+ prodInOut = new ProdInOut();
|
|
|
+ prodInOut.setPi_class("完工入库单");
|
|
|
+ code = maxnumberService.getMaxnumber("MakeIn", true).getData();
|
|
|
+ prodInOut.setPi_inoutno(code);
|
|
|
+ prodInOut.setPi_date(new Date()); //出入库日期
|
|
|
+ //prodInOut.setPi_total(make.getMa_price());
|
|
|
+ prodInOut.setPi_recordmanid(BaseContextHolder.getUserId()); //录入人ID
|
|
|
+ prodInOut.setPi_recorddate(new Date()); //录入日期
|
|
|
+ prodInOut.setPi_auditdate(new Date()); //审核日期
|
|
|
+ prodInOut.setPi_auditman(""); //审核人
|
|
|
+ prodInOut.setPi_status(Status.UNAUDITED.getDisplay()); //单据状态
|
|
|
+ prodInOut.setPi_statuscode(Status.UNAUDITED.name()); //单据状态码
|
|
|
+ prodInOut.setPi_text1(make.getMa_code()); //自定义字段1 赋值为制造单号
|
|
|
+ prodInOut.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodInOut.setCreateTime(new Date());
|
|
|
+ prodInOut.setCreatorId(BaseContextHolder.getUserId()); //创建人ID
|
|
|
+ prodInOutMapper.insertSelective(prodInOut);
|
|
|
+ pi_id = prodInOut.getId();
|
|
|
+ //b.从表
|
|
|
+ ProdIODetail prodIODetail = new ProdIODetail();
|
|
|
+ prodIODetail.setPd_piid(pi_id); //主表ID
|
|
|
+ prodIODetail.setPd_piclass("完工入库单");
|
|
|
+ prodIODetail.setPd_inoutno(code); //出入库单号
|
|
|
+ prodIODetail.setPd_pdno(1); //出入库单序号
|
|
|
+ prodIODetail.setPd_ordercode(make.getMa_code()); //订单号
|
|
|
+ prodIODetail.setPd_orderdetno(1); //订单序号
|
|
|
+ prodIODetail.setPd_prodid(make.getMa_prodid()); //物料ID
|
|
|
+ prodIODetail.setPd_prodcode(make.getMa_prodcode()); //物料CODE
|
|
|
+ prodIODetail.setPd_inqty(make.getMa_qty()); //入库数
|
|
|
+ prodIODetail.setPd_price(make.getMa_price()); //成本单价 ???
|
|
|
+ prodIODetail.setPd_total(make.getMa_total()); //金额
|
|
|
+ prodIODetail.setPd_whid(make.getMa_whid()); //仓库ID
|
|
|
+ prodIODetail.setPd_whcode(make.getMa_whcode()); //仓库CODE
|
|
|
+ prodIODetail.setPd_whname(make.getMa_whname()); //仓库名称
|
|
|
+ prodIODetail.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodIODetail.setPd_status(0); //单据状态
|
|
|
+ prodIODetailMapper.insertSelective(prodIODetail);
|
|
|
+
|
|
|
+ map.put("inoutNo", code);
|
|
|
+ map.put("class", "完工入库单");
|
|
|
+ map.put("commitid", BaseContextHolder.getUserId());
|
|
|
+ map.put("companyId", BaseContextHolder.getCompanyId());
|
|
|
+ map.put("result", null);
|
|
|
+ result = warehouseApi.post(map);
|
|
|
+ if (!StringUtils.isEmpty(result.getData())){
|
|
|
+ throw new BizException(76202, result.getData().toString());
|
|
|
+ }
|
|
|
+ }else if ("拆件".equals(make.getMa_type())){
|
|
|
+ /** 1.生产领料单 **/
|
|
|
+ //a.主表
|
|
|
+ ProdInOut prodInOut = new ProdInOut();
|
|
|
+ prodInOut.setPi_class("生产领料单");
|
|
|
+ String code = maxnumberService.getMaxnumber("MakeOut", true).getData();
|
|
|
+ prodInOut.setPi_inoutno(code);
|
|
|
+ prodInOut.setPi_date(new Date()); //出入库日期
|
|
|
+ //prodInOut.setPi_total(make.getMa_price());
|
|
|
+ prodInOut.setPi_recordmanid(BaseContextHolder.getUserId()); //录入人ID
|
|
|
+ prodInOut.setPi_recorddate(new Date()); //录入日期
|
|
|
+ prodInOut.setPi_auditdate(new Date()); //审核日期
|
|
|
+ prodInOut.setPi_auditman(""); //审核人
|
|
|
+ prodInOut.setPi_status(Status.UNAUDITED.getDisplay()); //单据状态
|
|
|
+ prodInOut.setPi_statuscode(Status.UNAUDITED.name()); //单据状态码
|
|
|
+ prodInOut.setPi_text1(make.getMa_code()); //自定义字段1 赋值为制造单号
|
|
|
+ prodInOut.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodInOut.setCreateTime(new Date());
|
|
|
+ prodInOut.setCreatorId(BaseContextHolder.getUserId()); //创建人ID
|
|
|
+ prodInOutMapper.insertSelective(prodInOut);
|
|
|
+ long pi_id = prodInOut.getId();
|
|
|
+ //b.从表
|
|
|
+ ProdIODetail prodIODetail = new ProdIODetail();
|
|
|
+ prodIODetail.setPd_piid(pi_id); //主表ID
|
|
|
+ prodIODetail.setPd_piclass("生产领料单");
|
|
|
+ prodIODetail.setPd_inoutno(code); //出入库单号
|
|
|
+ prodIODetail.setPd_pdno(1); //出入库单序号
|
|
|
+ prodIODetail.setPd_ordercode(make.getMa_code()); //订单号
|
|
|
+ prodIODetail.setPd_orderdetno(1); //订单序号
|
|
|
+ prodIODetail.setPd_prodid(make.getMa_prodid()); //物料ID
|
|
|
+ prodIODetail.setPd_prodcode(make.getMa_code()); //物料CODE
|
|
|
+ prodIODetail.setPd_outqty(make.getMa_qty()); //出库数
|
|
|
+ prodIODetail.setPd_price(make.getMa_price()); //成本单价 ???
|
|
|
+ prodIODetail.setPd_total(make.getMa_total()); //金额
|
|
|
+ prodIODetail.setPd_whid(make.getMa_whid()); //仓库ID
|
|
|
+ prodIODetail.setPd_whcode(make.getMa_whcode()); //仓库CODE
|
|
|
+ prodIODetail.setPd_whname(make.getMa_whname()); //仓库名称
|
|
|
+ prodIODetail.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodIODetail.setPd_status(0); //单据状态
|
|
|
+ prodIODetailMapper.insertSelective(prodIODetail);
|
|
|
+
|
|
|
+ //c.领料单过账
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ map.put("inoutNo", code);
|
|
|
+ map.put("class", "生产领料单");
|
|
|
+ map.put("commitid", BaseContextHolder.getUserId());
|
|
|
+ map.put("companyId", BaseContextHolder.getCompanyId());
|
|
|
+ map.put("result", null);
|
|
|
+ Result result = warehouseApi.post(map);
|
|
|
+ if (!StringUtils.isEmpty(result.getData())){
|
|
|
+ throw new BizException(76201, result.getData().toString());
|
|
|
+ }
|
|
|
+ /** 2.完工入库单 **/
|
|
|
+ //a.主表
|
|
|
+ prodInOut = new ProdInOut();
|
|
|
+ prodInOut.setPi_class("完工入库单");
|
|
|
+ code = maxnumberService.getMaxnumber("MakeIn", true).getData();
|
|
|
+ prodInOut.setPi_inoutno(code);
|
|
|
+ prodInOut.setPi_date(new Date()); //出入库日期
|
|
|
+ //prodInOut.setPi_total(make.getMa_price());
|
|
|
+ prodInOut.setPi_recordmanid(BaseContextHolder.getUserId()); //录入人ID
|
|
|
+ prodInOut.setPi_recorddate(new Date()); //录入日期
|
|
|
+ prodInOut.setPi_auditdate(new Date()); //审核日期
|
|
|
+ prodInOut.setPi_auditman(""); //审核人
|
|
|
+ prodInOut.setPi_status(Status.UNAUDITED.getDisplay()); //单据状态
|
|
|
+ prodInOut.setPi_statuscode(Status.UNAUDITED.name()); //单据状态码
|
|
|
+ prodInOut.setPi_text1(make.getMa_code()); //自定义字段1 赋值为制造单号
|
|
|
+ prodInOut.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodInOut.setCreateTime(new Date());
|
|
|
+ prodInOut.setCreatorId(BaseContextHolder.getUserId()); //创建人ID
|
|
|
+ prodInOutMapper.insertSelective(prodInOut);
|
|
|
+ pi_id = prodInOut.getId();
|
|
|
+ //b.从表
|
|
|
+ List<ProdIODetail> prodIODetailList = new ArrayList<ProdIODetail>();
|
|
|
+ int detno = 0;
|
|
|
+ for (MakeMaterial item : items) {
|
|
|
+ detno++;
|
|
|
+ prodIODetail = new ProdIODetail();
|
|
|
+ prodIODetail.setPd_piid(pi_id); //主表ID
|
|
|
+ prodIODetail.setPd_piclass("完工入库单");
|
|
|
+ prodIODetail.setPd_inoutno(code); //出入库单号
|
|
|
+ prodIODetail.setPd_pdno(detno); //出入库单序号
|
|
|
+ prodIODetail.setPd_ordercode(make.getMa_code()); //订单号
|
|
|
+ prodIODetail.setPd_orderdetno(detno); //订单序号
|
|
|
+ prodIODetail.setPd_prodid(item.getMm_prodid()); //物料ID
|
|
|
+ prodIODetail.setPd_prodcode(item.getMm_prodcode()); //物料CODE
|
|
|
+ prodIODetail.setPd_inqty(item.getMm_qty()); //入库数
|
|
|
+ prodIODetail.setPd_price(item.getMm_price()); //成本单价 ???
|
|
|
+ prodIODetail.setPd_total(item.getMm_amount()); //金额
|
|
|
+ prodIODetail.setPd_whid(item.getMm_whid()); //仓库ID
|
|
|
+ prodIODetail.setPd_whcode(item.getMm_whcode()); //仓库CODE
|
|
|
+ prodIODetail.setPd_whname(item.getMm_whname()); //仓库名称
|
|
|
+ prodIODetail.setCompanyId(BaseContextHolder.getCompanyId()); //公司ID
|
|
|
+ prodIODetail.setPd_status(0); //单据状态
|
|
|
+ prodIODetailList.add(prodIODetail);
|
|
|
+ }
|
|
|
+ prodIODetailMapper.batchInsert(prodIODetailList);
|
|
|
+
|
|
|
+ map.put("inoutNo", code);
|
|
|
+ map.put("class", "完工入库单");
|
|
|
+ map.put("commitid", BaseContextHolder.getUserId());
|
|
|
+ map.put("companyId", BaseContextHolder.getCompanyId());
|
|
|
+ map.put("result", null);
|
|
|
+ result = warehouseApi.post(map);
|
|
|
+ if (!StringUtils.isEmpty(result.getData())){
|
|
|
+ throw new BizException(76202, result.getData().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public DocBaseDTO resAudit(Long id) {
|
|
|
+ //1.获取主从表数据
|
|
|
+ Make make = getMapper().selectByPrimaryKey(id);
|
|
|
+ List<MakeMaterial> items = makeMaterialMapper.selectByFK(id, BaseContextHolder.getCompanyId());
|
|
|
+ MakeListDTO makeListDTO = new MakeListDTO(make, items);
|
|
|
+ //2.校验库存是否足够
|
|
|
+ validStorage(makeListDTO);
|
|
|
+ //3.查找 完工入库单和领料单
|
|
|
+ //4.反过账
|
|
|
+ selectProdIO(make);
|
|
|
+ //5.修改单据状态
|
|
|
+ Make updateMake = new Make();
|
|
|
+ make.setMa_status(Status.UNAUDITED.getDisplay());
|
|
|
+ make.setMa_statuscode(Status.UNAUDITED.name());
|
|
|
+ make.setUpdateTime(new Date());
|
|
|
+ make.setUpdaterId(BaseContextHolder.getUserId());
|
|
|
+ DocBaseDTO docBaseDTO = generateMsgObj(id, make.getMa_code());
|
|
|
+ //6.记录LOG
|
|
|
+ messageLogService.unAudit(docBaseDTO);
|
|
|
+ return docBaseDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String batchClose(BatchDealBaseDTO batchDealBaseDTO) {
|
|
|
+ StringBuilder errorMsg = new StringBuilder();
|
|
|
+ for (DocBaseDTO docBaseDTO : batchDealBaseDTO.getBaseDTOs()){
|
|
|
+ try{
|
|
|
+ close(docBaseDTO.getId());
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return errorMsg.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String batchOpen(BatchDealBaseDTO batchDealBaseDTO) {
|
|
|
+ StringBuilder errorMsg = new StringBuilder();
|
|
|
+ for (DocBaseDTO docBaseDTO : batchDealBaseDTO.getBaseDTOs()){
|
|
|
+ try{
|
|
|
+ open(docBaseDTO.getId());
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return errorMsg.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean batchDelete(BatchDealBaseDTO batchDealBaseDTO) {
|
|
|
+ if (null == batchDealBaseDTO || null == batchDealBaseDTO.getBaseDTOs() ||
|
|
|
+ batchDealBaseDTO.getBaseDTOs().size() == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ for (DocBaseDTO docBaseDTO : batchDealBaseDTO.getBaseDTOs()){
|
|
|
+ delete(docBaseDTO.getId());
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 1.查找制造单关联的出入库单据
|
|
|
+ * 2.反过账
|
|
|
+ * @param make
|
|
|
+ */
|
|
|
+ private void selectProdIO(Make make) {
|
|
|
+ String code = make.getMa_code();
|
|
|
+ Long companyId = BaseContextHolder.getCompanyId();
|
|
|
+ String InCode = getMapper().selectMakeInOutCode(code, companyId, "完工入库单");
|
|
|
+ String outCode = getMapper().selectMakeInOutCode(code, companyId, "生产领料单");
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ map.put("inoutNo", InCode);
|
|
|
+ map.put("class", "完工入库单");
|
|
|
+ map.put("commitid", BaseContextHolder.getUserId());
|
|
|
+ map.put("companyId", companyId);
|
|
|
+ map.put("result", null);
|
|
|
+ //完工入库单反过账
|
|
|
+ Result result = warehouseApi.unPost(map);
|
|
|
+ if(!StringUtils.isEmpty(result)){
|
|
|
+ throw new BizException(76203, result.getData().toString());
|
|
|
+ }
|
|
|
+ map.put("inoutNo", outCode);
|
|
|
+ map.put("class", "生产领料单");
|
|
|
+ //生产领料单反过账
|
|
|
+ result = warehouseApi.unPost(map);
|
|
|
+ if(!StringUtils.isEmpty(result)){
|
|
|
+ throw new BizException(76204, result.getData().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 构造日记记录对象
|
|
|
* @param id
|