|
|
@@ -167,8 +167,13 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
public void delete(Long id) {
|
|
|
singleDelete(id);
|
|
|
}
|
|
|
+
|
|
|
private void singleDelete(Long id) {
|
|
|
ProdInOut prodInOut = checkAndReturnOrder(id);
|
|
|
+ String pi_statuscode = prodInOut.getPi_statuscode();
|
|
|
+ if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.UNAUDITED.name()))){
|
|
|
+ throw new BizException(BizExceptionCode.BIZ_DELETE);
|
|
|
+ };
|
|
|
//从表删除
|
|
|
prodIODetailMapper.deleteByForeignKey(id);
|
|
|
//主表删除
|
|
|
@@ -180,6 +185,36 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
messageLogService.deleteDetail(docBaseDTO);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Integer deleteItem(Long id) {
|
|
|
+ ProdIODetail prodIODetail = prodIODetailMapper.selectByPrimaryKey(id);
|
|
|
+ ProdInOut prodInOut = checkAndReturnOrder(prodIODetail.getPd_piid());
|
|
|
+ Integer num = prodIODetailMapper.deleteByPrimaryKey(id);
|
|
|
+ //更新已转数
|
|
|
+ updateYqty(prodInOut);
|
|
|
+ DocBaseDTO docBaseDTO = getBaseDTOById(id,prodInOut.getPi_class(),prodInOut.getPi_inoutno());
|
|
|
+ //日志
|
|
|
+ messageLogService.deleteDetail(docBaseDTO);
|
|
|
+ return num;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String batchDelete(BatchDealBaseDTO baseDTOs) {
|
|
|
+ if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
+ return "无可删除的单据。";
|
|
|
+ }
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
+ for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
+ try{
|
|
|
+ singleDelete(base.getId());
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return errorMsg.toString();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public DocBaseDTO audit(ProdInOutFormDTO formData) {
|
|
|
@@ -187,21 +222,22 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
DocBaseDTO baseDTO = new DocBaseDTO();
|
|
|
if (null != formData) {
|
|
|
id = formData.getMain().getId();
|
|
|
- if (StringUtils.isEmpty(id)) {
|
|
|
+ if (StringUtils.isEmpty(id) || "0".equals(String.valueOf(id))) {
|
|
|
baseDTO = saveFormData(formData);
|
|
|
id = baseDTO.getId();
|
|
|
}
|
|
|
- String res = singleAudit(formData.getMain());
|
|
|
- if(StringUtils.hasText(res)){
|
|
|
- throw new BizException(501,res);
|
|
|
- }
|
|
|
+ singleAudit( formData.getMain());
|
|
|
}
|
|
|
baseDTO.setId(id);
|
|
|
return baseDTO;
|
|
|
}
|
|
|
- private String singleAudit(ProdInOutDTO prodInOutDTO) {
|
|
|
+ private void singleAudit(ProdInOutDTO prodInOutDTO) {
|
|
|
String pi_class= prodInOutDTO.getPi_class();
|
|
|
String pi_inoutno = prodInOutDTO.getPi_inoutno();
|
|
|
+ String pi_statuscode = prodInOutDTO.getPi_statuscode();
|
|
|
+ if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.UNAUDITED.name()))){
|
|
|
+ throw new BizException(BizExceptionCode.BIZ_AUDITED);
|
|
|
+ };
|
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
|
map.put("inoutNo",pi_inoutno);
|
|
|
map.put("class", pi_class);
|
|
|
@@ -210,35 +246,51 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
map.put("result","");
|
|
|
Result res = warehouseApi.post(map);
|
|
|
Object result = res.getData();
|
|
|
+ System.out.println("result:"+result);
|
|
|
if(!StringUtils.isEmpty(result)){
|
|
|
- return result.toString();
|
|
|
+ throw new BizException(BizExceptionCode.SALEOUT_POST_ERROR.getCode(),result.toString());
|
|
|
}else{
|
|
|
//记录日志
|
|
|
DocBaseDTO docBaseDTO = getBaseDTOById(prodInOutDTO.getId(),pi_class,pi_inoutno);
|
|
|
//日志
|
|
|
messageLogService.audit(docBaseDTO);
|
|
|
- return "";
|
|
|
}
|
|
|
}
|
|
|
+ @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();
|
|
|
+ ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
|
|
|
+ ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
|
|
|
+ singleAudit(prodInOutDTO);
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return errorMsg.toString();
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
- public Result unAudit(Long id) {
|
|
|
+ public void unAudit(Long id) {
|
|
|
+ DocBaseDTO baseDTO = new DocBaseDTO();
|
|
|
ProdInOut prodInOut = checkAndReturnOrder(id);
|
|
|
- String code = prodInOutMapper.validateUnAudit(id);
|
|
|
- if (!prodInOut.getPi_statuscode().equals(Status.AUDITED.name())) {
|
|
|
- throw new BizException(BizExceptionCode.SALE_NULL_BILL);
|
|
|
- }
|
|
|
ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut, ProdInOutDTO.class);
|
|
|
- String res = singleUnAudit(prodInOutDTO);
|
|
|
- if(res!=null){
|
|
|
- return Result.error(res);
|
|
|
- }else{
|
|
|
- return Result.success();
|
|
|
- }
|
|
|
+ singleUnAudit(prodInOutDTO);
|
|
|
}
|
|
|
- private String singleUnAudit(ProdInOutDTO prodInOutDTO) {
|
|
|
+
|
|
|
+ private void singleUnAudit(ProdInOutDTO prodInOutDTO) {
|
|
|
String pi_class = prodInOutDTO.getPi_class();
|
|
|
String pi_inoutno = prodInOutDTO.getPi_inoutno();
|
|
|
+ String pi_statuscode = prodInOutDTO.getPi_statuscode();
|
|
|
+ if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.AUDITED.name()))){
|
|
|
+ throw new BizException(BizExceptionCode.BIZ_UNAUDITED);
|
|
|
+ };
|
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
|
map.put("inoutNo", pi_inoutno);
|
|
|
map.put("class", pi_class);
|
|
|
@@ -248,90 +300,33 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
Result res = warehouseApi.unPost(map);
|
|
|
Object result = res.getData();
|
|
|
if(!StringUtils.isEmpty(result)){
|
|
|
- return result.toString();
|
|
|
- }else{
|
|
|
- //更新状态为未审核
|
|
|
- ProdInOut prodInOut = BeanMapper.map(prodInOutDTO, ProdInOut.class);
|
|
|
- prodInOut.setPi_statuscode(Status.UNAUDITED.name());
|
|
|
- prodInOut.setPi_status(Status.UNAUDITED.getDisplay());
|
|
|
- prodInOut.setUpdateTime(new Date());
|
|
|
- prodInOut.setUpdaterId(BaseContextHolder.getUserId());
|
|
|
- getMapper().updateByPrimaryKeySelective(prodInOut);
|
|
|
+ throw new BizException(BizExceptionCode.SALEOUT_POST_ERROR.getCode(),result.toString());
|
|
|
+ }else {
|
|
|
//记录日志
|
|
|
DocBaseDTO docBaseDTO = getBaseDTOById(prodInOutDTO.getId(),pi_class,pi_inoutno);
|
|
|
//日志
|
|
|
messageLogService.unAudit(docBaseDTO);
|
|
|
- return "";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void batchAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
+ public String batchUnAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
- return;
|
|
|
+ return "无可反审核单据。";
|
|
|
}
|
|
|
- String validate = prodInOutMapper.validateAudit(baseDTOs.getBaseDTOs());
|
|
|
- if (!StringUtils.isEmpty(validate)) {
|
|
|
- throw new BizException(500, "存在已审核单据,单据编号:" + validate);
|
|
|
- }
|
|
|
- String error = null;
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
- Long id = base.getId();
|
|
|
- ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
|
|
|
- ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
|
|
|
- error+=singleAudit(prodInOutDTO);
|
|
|
- }
|
|
|
- if(!StringUtils.isEmpty(error)){
|
|
|
- new BizException(501,error);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void batchUnAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
- if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
- baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- String msg = prodInOutMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
|
|
|
- if (null != msg) {
|
|
|
- throw new BizException(500, "存在未审核单据,单据编号:" + msg);
|
|
|
- }
|
|
|
- String error = null;
|
|
|
- for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
- Long id = base.getId();
|
|
|
- ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
|
|
|
- ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
|
|
|
- error+=singleUnAudit(prodInOutDTO);
|
|
|
- }
|
|
|
- if(!StringUtils.isEmpty(error)){
|
|
|
- throw new BizException(501,error);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Integer deleteItem(Long id) {
|
|
|
- ProdIODetail prodIODetail = prodIODetailMapper.selectByPrimaryKey(id);
|
|
|
- ProdInOut prodInOut = checkAndReturnOrder(prodIODetail.getPd_piid());
|
|
|
- Integer num = prodIODetailMapper.deleteByPrimaryKey(id);
|
|
|
- //更新已转数
|
|
|
- updateYqty(prodInOut);
|
|
|
- DocBaseDTO docBaseDTO = getBaseDTOById(id,prodInOut.getPi_class(),prodInOut.getPi_inoutno());
|
|
|
- //日志
|
|
|
- messageLogService.deleteDetail(docBaseDTO);
|
|
|
- return num;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void batchDelete(BatchDealBaseDTO baseDTOs) {
|
|
|
- if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
- baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
- singleDelete(base.getId());
|
|
|
+ try {
|
|
|
+ Long id = base.getId();
|
|
|
+ ProdInOut prodInOut = prodInOutMapper.selectByPrimaryKey(id);
|
|
|
+ ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
|
|
|
+ singleUnAudit(prodInOutDTO);
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
+ return errorMsg.toString();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -378,7 +373,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
|
|
|
//检查转单状态
|
|
|
String statuscode = sourcePi.getPi_statuscode();
|
|
|
- if(!Status.UNAUDITED.name().equals(statuscode)){
|
|
|
+ if(!Status.AUDITED.name().equals(statuscode)){
|
|
|
throw new BizException(BizExceptionCode.SALEOUT_POSTSTATUS_ERROR);
|
|
|
}
|
|
|
|
|
|
@@ -464,20 +459,12 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public Result close(Long id) {
|
|
|
- String res = singleClose(id);
|
|
|
- if(StringUtils.hasText(res)){
|
|
|
- return Result.error(res);
|
|
|
- }else{
|
|
|
- return Result.success();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private String singleClose(Long id){
|
|
|
+ public DocBaseDTO close(Long id) {
|
|
|
ProdInOut prodInOut = checkAndReturnOrder(id);
|
|
|
+ String pi_statuscode = prodInOut.getPi_statuscode();
|
|
|
//状态校验
|
|
|
- if(Status.CLOSE.name().equals(prodInOut.getPi_status())){
|
|
|
- return BizExceptionCode.BIZ_CLOSE.getMessage();
|
|
|
+ if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.AUDITED.name()))){
|
|
|
+ throw new BizException(BizExceptionCode.BIZ_CLOSE);
|
|
|
}
|
|
|
//更新状态
|
|
|
prodInOut.setPi_status(Status.CLOSE.getDisplay());
|
|
|
@@ -486,72 +473,60 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
prodInOutMapper.updateByPrimaryKeySelective(prodInOut);
|
|
|
//记录日志
|
|
|
DocBaseDTO docBaseDTO = getBaseDTOById(prodInOut.getId(),prodInOut.getPi_class(),prodInOut.getPi_inoutno());
|
|
|
- messageLogService.close(docBaseDTO);
|
|
|
- return "";
|
|
|
+ messageLogService.close(docBaseDTO);
|
|
|
+ return docBaseDTO;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
- public void batchClose(BatchDealBaseDTO baseDTOs){
|
|
|
+ public String batchClose(BatchDealBaseDTO baseDTOs){
|
|
|
if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- String validate = prodInOutMapper.validateBatchClose(baseDTOs.getBaseDTOs());
|
|
|
- if (!StringUtils.isEmpty(validate)) {
|
|
|
- throw new BizException(503, "存在非已审核单据,单据编号:" + validate);
|
|
|
+ return "没有可关闭单据。";
|
|
|
}
|
|
|
- String error = null;
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
- error+=singleClose(base.getId());
|
|
|
- }
|
|
|
- if(!StringUtils.isEmpty(error)){
|
|
|
- new BizException(501,error);
|
|
|
+ try{
|
|
|
+ close(base.getId());
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
+ return errorMsg.toString();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public Result open(Long id){
|
|
|
- String res = singleOpen(id);
|
|
|
- if(StringUtils.hasText(res)){
|
|
|
- return Result.error(res);
|
|
|
- }else{
|
|
|
- return Result.success();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private String singleOpen(Long id){
|
|
|
+ public DocBaseDTO open(Long id){
|
|
|
ProdInOut prodInOut = checkAndReturnOrder(id);
|
|
|
String pi_statuscode = prodInOut.getPi_statuscode();
|
|
|
- if(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.CLOSE.getDisplay())){
|
|
|
- return BizExceptionCode.BIZ_OPEN.getMessage();
|
|
|
+ if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.CLOSE.name()))){
|
|
|
+ throw new BizException(BizExceptionCode.BIZ_OPEN);
|
|
|
};
|
|
|
prodInOut.setPi_status(Status.AUDITED.getDisplay());
|
|
|
- prodInOut.setPi_statuscode(Status.AUDITED.getDisplay());
|
|
|
+ prodInOut.setPi_statuscode(Status.AUDITED.name());
|
|
|
prodInOutMapper.updateByPrimaryKeySelective(prodInOut);
|
|
|
//记录日志
|
|
|
DocBaseDTO docBaseDTO = getBaseDTOById(prodInOut.getId(),prodInOut.getPi_class(),prodInOut.getPi_inoutno());
|
|
|
messageLogService.open(docBaseDTO);
|
|
|
- return "";
|
|
|
+ return docBaseDTO;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void batchOpen(BatchDealBaseDTO baseDTOs){
|
|
|
+ public String batchOpen(BatchDealBaseDTO baseDTOs){
|
|
|
if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- String validate = prodInOutMapper.validateBatchOpen(baseDTOs.getBaseDTOs());
|
|
|
- if (!StringUtils.isEmpty(validate)) {
|
|
|
- throw new BizException(503, "存在非已关闭单据,单据编号:" + validate);
|
|
|
+ return "没有可开启单据。";
|
|
|
}
|
|
|
- String error = null;
|
|
|
+ StringBuffer errorMsg = new StringBuffer();
|
|
|
for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
- error+=singleOpen(base.getId());
|
|
|
- }
|
|
|
- if(!StringUtils.isEmpty(error)){
|
|
|
- new BizException(501,error);
|
|
|
+ try{
|
|
|
+ open(base.getId());
|
|
|
+ }catch (Exception e){
|
|
|
+ errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
+ return errorMsg.toString();
|
|
|
}
|
|
|
|
|
|
/**
|