入库整理

main
HUOJIN\92525 2024-09-23 18:16:03 +08:00
parent c7989bec9a
commit 00cfa17fe6
7 changed files with 135 additions and 99 deletions

View File

@ -48,11 +48,12 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import static org.springframework.http.HttpStatus.BAD_REQUEST; import static org.springframework.http.HttpStatus.BAD_REQUEST;
/** /**
* @website https://eladmin.vip
* @author liuxue * @author liuxue
* @website https://eladmin.vip
* @date 2023-07-28 * @date 2023-07-28
**/ **/
@RestController @RestController
@ -67,6 +68,7 @@ public class StockController {
private final FileProperties properties; private final FileProperties properties;
private final StockTypeService stockTypeService; private final StockTypeService stockTypeService;
@Log("导出数据") @Log("导出数据")
@ApiOperation("导出数据") @ApiOperation("导出数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@ -150,8 +152,8 @@ public class StockController {
@ApiOperation("查询可用空闲的容器stock") @ApiOperation("查询可用空闲的容器stock")
@GetMapping(value = "/queryKyStockList") @GetMapping(value = "/queryKyStockList")
@PreAuthorize("@el.check('super:man')") @PreAuthorize("@el.check('super:man')")
public ResponseEntity<Object> queryKyStockList(StockQueryCriteria criteria, Pageable pageable){ public ResponseEntity<Object> queryKyStockList(StockQueryCriteria criteria) {
return new ResponseEntity<>(stockService.queryKyStockList("124"),HttpStatus.OK); return new ResponseEntity<>(stockService.queryKyStockList(criteria.getCode()), HttpStatus.OK);
} }
@PostMapping @PostMapping

View File

@ -51,8 +51,7 @@ public class Asn extends BaseEntity implements Serializable {
private String code; private String code;
@OneToOne @OneToOne
@JoinColumn(name = "`area_id`",nullable = false) @JoinColumn(name = "`area_id`")
@NotNull
@ApiModelProperty(value = "库区") @ApiModelProperty(value = "库区")
private Area area; private Area area;
@ -61,7 +60,7 @@ public class Asn extends BaseEntity implements Serializable {
private String status; private String status;
@Column(name = "`cus_code`") @Column(name = "`cus_code`")
@ApiModelProperty(value = "客户订单号") @ApiModelProperty(value = "SAP接口号")
private String cusCode; private String cusCode;
@Column(name = "`related_bill1`") @Column(name = "`related_bill1`")
@ -106,11 +105,11 @@ public class Asn extends BaseEntity implements Serializable {
private String fromTel; private String fromTel;
@Column(name = "`order_quantity`") @Column(name = "`order_quantity`")
@ApiModelProperty(value = "订单数量") @ApiModelProperty(value = "待收数量")
private Double orderQuantity; private Double orderQuantity;
@Column(name = "`received_quantity`") @Column(name = "`received_quantity`")
@ApiModelProperty(value = "数量") @ApiModelProperty(value = "收数量")
private Double receivedQuantity; private Double receivedQuantity;
@Column(name = "`putaway_quantity`") @Column(name = "`putaway_quantity`")
@ -136,14 +135,14 @@ public class Asn extends BaseEntity implements Serializable {
private String description; private String description;
@Column(name = "`zl_by`") @Column(name = "`zl_by`")
@ApiModelProperty(value = "整理人") @ApiModelProperty(value = "SAP收货人")
private String zlBy; private String zlBy;
@Column(name = "`zl_date`") @Column(name = "`zl_date`")
@ApiModelProperty(value = "整理日期") @ApiModelProperty(value = "整理日期")
private Timestamp zlDate; private Timestamp zlDate;
@Column(name = "`cy_by`") @Column(name = "`cy_by`")
@ApiModelProperty(value = "抽样人") @ApiModelProperty(value = "申请人")
private String cyBy; private String cyBy;
@Column(name = "`cy_date`") @Column(name = "`cy_date`")

View File

@ -50,7 +50,7 @@ public class AsnDetail extends BaseEntity implements Serializable {
@OneToOne @OneToOne
@JoinColumn(name = "`asn_id`") @JoinColumn(name = "`asn_id`")
@ApiModelProperty(value = "订单序号") @ApiModelProperty(value = "入库单")
private Asn asn; private Asn asn;
@OneToOne @OneToOne

View File

@ -25,6 +25,7 @@ import com.youchain.businessdata.repository.AsnRepository;
import com.youchain.businessdata.service.AsnService; import com.youchain.businessdata.service.AsnService;
import com.youchain.businessdata.service.dto.AsnQueryCriteria; import com.youchain.businessdata.service.dto.AsnQueryCriteria;
import com.youchain.exception.BadRequestException; import com.youchain.exception.BadRequestException;
import com.youchain.exception.handler.ApiResult;
import com.youchain.utils.BizStatus; import com.youchain.utils.BizStatus;
import com.youchain.utils.CodeUtils; import com.youchain.utils.CodeUtils;
import com.youchain.utils.SecurityUtils; import com.youchain.utils.SecurityUtils;
@ -89,7 +90,6 @@ public class AsnController {
} }
@GetMapping("/getIdByAsn") @GetMapping("/getIdByAsn")
@Log("查询asn") @Log("查询asn")
@ApiOperation("查询asn") @ApiOperation("查询asn")
@ -132,6 +132,22 @@ public class AsnController {
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@DeleteMapping(value = "/deleteAsnAndDetail")
@Log("删除入库单和入库明细")
@ApiOperation("删除入库单和入库明细")
@PreAuthorize("@el.check('super:man')")
public ResponseEntity<Object> deleteAsnAndDetail(@RequestBody Long[] ids) {
try {
for (Long id : ids) {
asnService.deleteAsnAndDetail(id);
}
return new ResponseEntity<>(ApiResult.success("删除成功", null), HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<>(ApiResult.fail(HttpStatus.BAD_REQUEST.value(), e.getMessage(), null), HttpStatus.BAD_REQUEST);
}
}
@PostMapping("/zlRegister") @PostMapping("/zlRegister")
@Log("入库整理登记") @Log("入库整理登记")
@ApiOperation("入库整理登记") @ApiOperation("入库整理登记")
@ -184,6 +200,7 @@ public class AsnController {
} }
return new ResponseEntity<>("操作成功", HttpStatus.OK); return new ResponseEntity<>("操作成功", HttpStatus.OK);
} }
@PostMapping("/zjRegister") @PostMapping("/zjRegister")
@Log("入库质检登记") @Log("入库质检登记")
@ApiOperation("入库质检登记") @ApiOperation("入库质检登记")

View File

@ -149,9 +149,6 @@ public class AsnDetailController {
@ApiOperation("新增asn_detail") @ApiOperation("新增asn_detail")
@PreAuthorize("@el.check('super:man')") @PreAuthorize("@el.check('super:man')")
public ResponseEntity<Object> createAsnDetail(@Validated @RequestBody AsnDetail asnDetail) { public ResponseEntity<Object> createAsnDetail(@Validated @RequestBody AsnDetail asnDetail) {
if(asnDetail.getAsn()==null){
return new ResponseEntity<>(ApiResult.fail(HttpStatus.BAD_REQUEST.value(), "请先提交入库单!", null),HttpStatus.BAD_REQUEST);
}
asnDetail.setStatus(BizStatus.OPEN); asnDetail.setStatus(BizStatus.OPEN);
asnDetail.setDept(UserUtils.getDept()); asnDetail.setDept(UserUtils.getDept());
if (asnDetail.getRemark() == null && asnDetail.getAsn().getDescription() != null) { if (asnDetail.getRemark() == null && asnDetail.getAsn().getDescription() != null) {

View File

@ -82,4 +82,10 @@ public interface AsnService {
* @throws Exception / * @throws Exception /
*/ */
void download(List<AsnDto> all, HttpServletResponse response) throws Exception, Exception; void download(List<AsnDto> all, HttpServletResponse response) throws Exception, Exception;
/**
* asnasnDetail
* @param id
*/
void deleteAsnAndDetail(Long id);
} }

View File

@ -19,6 +19,7 @@ import com.youchain.businessdata.domain.Asn;
import com.youchain.businessdata.domain.AsnDetail; import com.youchain.businessdata.domain.AsnDetail;
import com.youchain.businessdata.repository.AsnDetailRepository; import com.youchain.businessdata.repository.AsnDetailRepository;
import com.youchain.businessdata.service.AsnDetailService; import com.youchain.businessdata.service.AsnDetailService;
import com.youchain.exception.BadRequestException;
import com.youchain.utils.*; import com.youchain.utils.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import com.youchain.businessdata.repository.AsnRepository; import com.youchain.businessdata.repository.AsnRepository;
@ -147,4 +148,18 @@ public class AsnServiceImpl implements AsnService {
} }
FileUtil.downloadExcel(list, response); FileUtil.downloadExcel(list, response);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAsnAndDetail(Long id) {
Asn asn = asnRepository.findById(id).get();
if (!BizStatus.OPEN.equals(asn.getStatus())) {
throw new BadRequestException("该单据状态不允许删除");
}
List<AsnDetail> asnDetails = asnDetailRepository.queryByAsnId(id);
for (AsnDetail asnDetail : asnDetails) {
asnDetailRepository.delete(asnDetail);
}
asnRepository.delete(asn);
}
} }