|
|
@@ -27,6 +27,7 @@ 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.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
@@ -246,21 +247,29 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
public DocBaseDTO audit(MakeListDTO makeListDTO) {
|
|
|
- //1.获取主从表数据
|
|
|
+ Long id = makeListDTO.getMain().getId();
|
|
|
+ DocBaseDTO baseDTO = new DocBaseDTO();
|
|
|
Make make = makeListDTO.getMain();
|
|
|
- List<MakeMaterial> items = makeListDTO.getItems();
|
|
|
//如果ID为0,先执行保存
|
|
|
- if (makeListDTO.getMain().getId() == 0){
|
|
|
+ if (make.getId() == 0 || StringUtils.isEmpty(id)){
|
|
|
DocBaseDTO docBaseDTO = saveOrUpdate(makeListDTO);
|
|
|
make.setId(docBaseDTO.getId());
|
|
|
}
|
|
|
+ //审核
|
|
|
+ singleAudit(makeListDTO);
|
|
|
+ baseDTO = generateMsgObj(make.getId(), make.getMa_code());
|
|
|
+ return baseDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED)
|
|
|
+ public void singleAudit(MakeListDTO makeListDTO) {
|
|
|
+ //1.获取主从表数据
|
|
|
+ Make make = makeListDTO.getMain();
|
|
|
//2.校验库存是否足够
|
|
|
validStorage(makeListDTO);
|
|
|
//3.生成 完工入库单和领料单 并 过账
|
|
|
generateProdIO(makeListDTO);
|
|
|
-
|
|
|
//4.修改单据状态
|
|
|
Make updateMake = new Make();
|
|
|
updateMake.setId(make.getId());
|
|
|
@@ -274,9 +283,33 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
DocBaseDTO docBaseDTO = generateMsgObj(make.getId(), make.getMa_code());
|
|
|
//5.记录LOG
|
|
|
messageLogService.audit(docBaseDTO);
|
|
|
- return docBaseDTO;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String batchAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
+ if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
+ return "没有可审核单据。";
|
|
|
+ }
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
+ for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
+ try {
|
|
|
+ Long id = base.getId();
|
|
|
+ Make make = getMapper().selectByPrimaryKey(id);
|
|
|
+ List<MakeMaterial> makeMaterials = makeMaterialMapper.selectByFK(id,BaseContextHolder.getCompanyId());
|
|
|
+ MakeListDTO makeListDTO = new MakeListDTO();
|
|
|
+ makeListDTO.setMain(make);
|
|
|
+ makeListDTO.setItems(makeMaterials);
|
|
|
+ singleAudit(makeListDTO);
|
|
|
+ } catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return errorMsg.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 1.生成 完工入库单和生产领料单
|
|
|
* 2.过账
|
|
|
@@ -518,8 +551,12 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
public DocBaseDTO resAudit(Long id) {
|
|
|
+ return singleUnAudit(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public DocBaseDTO singleUnAudit(Long id) {
|
|
|
//1.获取主从表数据
|
|
|
Make make = getMapper().selectByPrimaryKey(id);
|
|
|
List<MakeMaterial> items = makeMaterialMapper.selectByFK(id, BaseContextHolder.getCompanyId());
|
|
|
@@ -541,6 +578,24 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
//6.记录LOG
|
|
|
messageLogService.unAudit(docBaseDTO);
|
|
|
return docBaseDTO;
|
|
|
+ };
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String batchUnAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
+ if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
+ return "无可反审核单据。";
|
|
|
+ }
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
+ for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
+ try {
|
|
|
+ Long id = base.getId();
|
|
|
+ singleUnAudit(id);
|
|
|
+ }catch (Exception e) {
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return errorMsg.toString();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -581,6 +636,7 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 1.查找制造单关联的出入库单据
|
|
|
* 2.反过账
|
|
|
@@ -649,7 +705,7 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
|
|
|
* @Author: chenwei
|
|
|
* @Date: 2018/10/26
|
|
|
*/
|
|
|
- private String pushMaxnubmer(String code, Long id) {
|
|
|
+ private synchronized String pushMaxnubmer(String code, Long id) {
|
|
|
if (null == code) {
|
|
|
throw new BizException(BizExceptionCode.NULL_CODE);
|
|
|
}
|