|
@@ -38,8 +38,7 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping("/business/returnReceipt")
|
|
|
-public class BizReturnReceiptController extends BaseController
|
|
|
-{
|
|
|
+public class BizReturnReceiptController extends BaseController {
|
|
|
@Resource
|
|
|
private IBizReturnReceiptService bizReturnReceiptService;
|
|
|
@Resource
|
|
@@ -60,18 +59,18 @@ public class BizReturnReceiptController extends BaseController
|
|
|
*/
|
|
|
@Autowired
|
|
|
private FreeMarkerConfigurer freeMarkerConfigurer;
|
|
|
+
|
|
|
/**
|
|
|
* 查询收回单主
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:list')")
|
|
|
@GetMapping("/list")
|
|
|
- public TableDataInfo list(BizReturnReceipt bizReturnReceipt) throws NoSuchFieldException, IllegalAccessException
|
|
|
- {
|
|
|
- if(bizReturnReceipt.getStartTime()!=null) {
|
|
|
- bizReturnReceipt.setStartTime(bizReturnReceipt.getStartTime()+ " 00:00:00");
|
|
|
+ public TableDataInfo list(BizReturnReceipt bizReturnReceipt) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ if (bizReturnReceipt.getStartTime() != null) {
|
|
|
+ bizReturnReceipt.setStartTime(bizReturnReceipt.getStartTime() + " 00:00:00");
|
|
|
}
|
|
|
- if(bizReturnReceipt.getEndTime()!=null) {
|
|
|
- bizReturnReceipt.setEndTime(bizReturnReceipt.getEndTime()+ " 23:59:59");
|
|
|
+ if (bizReturnReceipt.getEndTime() != null) {
|
|
|
+ bizReturnReceipt.setEndTime(bizReturnReceipt.getEndTime() + " 23:59:59");
|
|
|
}
|
|
|
final String supplierId = request.getHeader("tenantId");
|
|
|
bizReturnReceipt.setSupplierId(Long.parseLong(supplierId));
|
|
@@ -82,7 +81,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
|
|
|
/**
|
|
|
* 导出收回单主
|
|
|
-带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子列表
|
|
|
+ * 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子列表
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:export')")
|
|
|
@Log(title = "收回单主带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子", businessType = BusinessType.EXPORT)
|
|
@@ -91,7 +90,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
bizReturnReceipt = bizReturnReceiptService.getById(bizReturnReceipt);
|
|
|
BizSupplier supplier = bizSupplierService.query().eq("id", bizReturnReceipt.getSupplierId()).list().get(0);
|
|
|
bizReturnReceipt.setSupplierCode(supplier.getCode());
|
|
|
- List<BizReturnReceiptDetail> returnReceiptDetailList = bizReturnReceiptDetailService.query().eq("master_id",bizReturnReceipt.getId()).orderByAsc("process_step_number").list();
|
|
|
+ List<BizReturnReceiptDetail> returnReceiptDetailList = bizReturnReceiptDetailService.query().eq("master_id", bizReturnReceipt.getId()).orderByAsc("process_step_number").list();
|
|
|
//按照批次分组,一个批次合并成一条
|
|
|
List<String> lotCodeList = returnReceiptDetailList.stream()
|
|
|
.map(BizReturnReceiptDetail::getLotCode)
|
|
@@ -112,7 +111,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
info.setProductDescription(detailList.get(0).getProductDescription());
|
|
|
info.setOutsourceDetailId(detailList.get(0).getOutsourceDetailId());
|
|
|
info.setLotCode(lotCode);
|
|
|
- info.setReceiptNum(detailList.get(detailList.size() -1).getReceiptNum());
|
|
|
+ info.setReceiptNum(detailList.get(detailList.size() - 1).getReceiptNum());
|
|
|
info.setNewCarrier(detailList.get(0).getNewCarrier());
|
|
|
info.setNewCarrierCount(detailList.get(0).getNewCarrierCount());
|
|
|
info.setRemark(detailList.get(0).getRemark());
|
|
@@ -121,9 +120,9 @@ public class BizReturnReceiptController extends BaseController
|
|
|
bizReturnReceipt.setDetails(details);
|
|
|
bizReturnReceiptService.exportTemplateProvinceAreaData(response, bizReturnReceipt);
|
|
|
}
|
|
|
+
|
|
|
@PutMapping("/updateReceiptSubmitStatus")
|
|
|
- public AjaxResult updateReceiptSubmitStatus(@RequestBody BizReturnReceipt bizReturnReceipt)
|
|
|
- {
|
|
|
+ public AjaxResult updateReceiptSubmitStatus(@RequestBody BizReturnReceipt bizReturnReceipt) {
|
|
|
BizReturnReceipt returnReceipt = bizReturnReceiptService.query().eq("id", bizReturnReceipt.getId()).one();
|
|
|
returnReceipt.setIsSubmit(0);
|
|
|
bizReturnReceiptService.updateById(returnReceipt);
|
|
@@ -132,13 +131,12 @@ public class BizReturnReceiptController extends BaseController
|
|
|
|
|
|
/**
|
|
|
* 新增外协单主
|
|
|
- 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
|
+ * 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:add')")
|
|
|
@Transactional
|
|
|
@PostMapping
|
|
|
- public AjaxResult addReceipt(@RequestBody BizReturnReceipt bizReturnReceipt)
|
|
|
- {
|
|
|
+ public AjaxResult addReceipt(@RequestBody BizReturnReceipt bizReturnReceipt) {
|
|
|
final String supplierId = request.getHeader("tenantId");
|
|
|
bizReturnReceipt.setSupplierId(Long.parseLong(supplierId));
|
|
|
//若有id,则说将之前的明细删除不生成新的单号
|
|
@@ -151,25 +149,25 @@ public class BizReturnReceiptController extends BaseController
|
|
|
String codeValue;
|
|
|
String codeType = "returnReceiveCode";
|
|
|
//查询redis中外协单号的值
|
|
|
- String previous = redisCache.hasKey(codeType) ? redisCache.getCacheObject(codeType) :"";
|
|
|
+ String previous = redisCache.hasKey(codeType) ? redisCache.getCacheObject(codeType) : "";
|
|
|
//若不存在,则直接存入
|
|
|
if (previous.isEmpty()) {
|
|
|
List<BizReturnReceipt> returnReceiptList = bizReturnReceiptService.getAllList();
|
|
|
- if(!returnReceiptList.isEmpty()){
|
|
|
- codeValue=returnReceiptList.get(0).getFormCode();
|
|
|
+ if (!returnReceiptList.isEmpty()) {
|
|
|
+ codeValue = returnReceiptList.get(0).getFormCode();
|
|
|
int lastFourDigits = Integer.parseInt(codeValue.substring(5, 10));
|
|
|
lastFourDigits += 1; // 加1
|
|
|
codeValue = codeValue.substring(0, 5) + String.format("%05d", lastFourDigits);
|
|
|
- previous=codeValue;
|
|
|
- }else {
|
|
|
+ previous = codeValue;
|
|
|
+ } else {
|
|
|
previous = ("SHD" + formattedDate + "000001");
|
|
|
}
|
|
|
} else {
|
|
|
- codeValue=previous;
|
|
|
+ codeValue = previous;
|
|
|
int lastFourDigits = Integer.parseInt(codeValue.substring(5, 10));
|
|
|
lastFourDigits += 1; // 加1
|
|
|
codeValue = codeValue.substring(0, 5) + String.format("%05d", lastFourDigits);
|
|
|
- previous=codeValue;
|
|
|
+ previous = codeValue;
|
|
|
}
|
|
|
//存到redis中
|
|
|
redisCache.setCacheObject(codeType, previous);
|
|
@@ -197,19 +195,19 @@ public class BizReturnReceiptController extends BaseController
|
|
|
// return success(bizReturnReceiptDetailService.saveBatch(bizReturnReceipt.getDetails()));
|
|
|
return success(bizReturnReceiptDetailService.saveBatch(bizReturnReceipt.getDetailInfo()));
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 修改外协单主
|
|
|
- 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
|
+ * 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:edit')")
|
|
|
@Transactional
|
|
|
@PutMapping
|
|
|
- public AjaxResult updateReceipt(@RequestBody BizReturnReceipt bizReturnReceipt)
|
|
|
- {
|
|
|
+ public AjaxResult updateReceipt(@RequestBody BizReturnReceipt bizReturnReceipt) {
|
|
|
//向收回单主表存
|
|
|
bizReturnReceiptService.updateById(bizReturnReceipt);
|
|
|
//向收回单明细表存
|
|
|
- List<BizReturnReceiptDetail> oldList = bizReturnReceiptDetailService.query().eq("master_id",bizReturnReceipt.getId()).list();
|
|
|
+ List<BizReturnReceiptDetail> oldList = bizReturnReceiptDetailService.query().eq("master_id", bizReturnReceipt.getId()).list();
|
|
|
bizReturnReceipt.getDetailInfo().stream()
|
|
|
.forEach(bizReturnReceiptDetail -> {
|
|
|
bizReturnReceiptDetail.setMasterId(bizReturnReceipt.getId());
|
|
@@ -218,7 +216,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
bizReturnReceiptDetail.setSupplierName(bizReturnReceipt.getSupplierName());
|
|
|
bizReturnReceiptDetail.setFormDate(bizReturnReceipt.getFormDate());
|
|
|
});
|
|
|
- saveOrUpdateBatch(bizReturnReceiptDetailService,bizReturnReceipt.getDetailInfo(),oldList);
|
|
|
+ saveOrUpdateBatch(bizReturnReceiptDetailService, bizReturnReceipt.getDetailInfo(), oldList);
|
|
|
// bizReturnReceipt.getDetails().stream()
|
|
|
// .forEach(bizReturnReceiptDetail -> {
|
|
|
// bizReturnReceiptDetail.setMasterId(bizReturnReceipt.getId());
|
|
@@ -230,13 +228,13 @@ public class BizReturnReceiptController extends BaseController
|
|
|
// saveOrUpdateBatch(bizReturnReceiptDetailService,bizReturnReceipt.getDetails(),oldList);
|
|
|
return success();
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 获取收回单主 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子详细信息
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:query')")
|
|
|
@GetMapping(value = "/{id}")
|
|
|
- public AjaxResult getInfo(@PathVariable("id") Long id)
|
|
|
- {
|
|
|
+ public AjaxResult getInfo(@PathVariable("id") Long id) {
|
|
|
// 根据 id 获取到收回订单
|
|
|
BizReturnReceipt returnReceipt = bizReturnReceiptService.getById(id);
|
|
|
|
|
@@ -263,7 +261,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
for (String lotCode : lotCodeList) {
|
|
|
groupedByLotCode.put(lotCode, returnReceiptDetails.stream()
|
|
|
.filter(record -> record.getLotCode().equals(lotCode))
|
|
|
- .sorted(Comparator.comparing(BizReturnReceiptDetail::getProcessStepNumber))
|
|
|
+ .sorted(Comparator.comparing(BizReturnReceiptDetail::getProcessStepNumber))
|
|
|
.collect(Collectors.toList()));
|
|
|
}
|
|
|
List<BizReturnReceiptDetail> details = new ArrayList<>();
|
|
@@ -275,7 +273,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
info.setOutsourceDetailId(detailList.get(0).getOutsourceDetailId());
|
|
|
info.setLotCode(lotCode);
|
|
|
info.setProductNum(detailList.get(0).getProductNum());
|
|
|
- info.setReceiptNum(detailList.get(detailList.size() -1).getReceiptNum());
|
|
|
+ info.setReceiptNum(detailList.get(detailList.size() - 1).getReceiptNum());
|
|
|
info.setNewCarrier(detailList.get(0).getNewCarrier());
|
|
|
info.setRemark(detailList.get(0).getRemark());
|
|
|
info.setProcessAlias(detailProcesses.stream()
|
|
@@ -304,16 +302,16 @@ public class BizReturnReceiptController extends BaseController
|
|
|
|
|
|
return success(returnReceipt);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 删除外协单主
|
|
|
- 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
|
+ * 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:remove')")
|
|
|
@Log(title = "外协单主带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子", businessType = BusinessType.DELETE)
|
|
|
@Transactional
|
|
|
@DeleteMapping("/{ids}")
|
|
|
- public AjaxResult remove(@PathVariable List<Long> ids)
|
|
|
- {
|
|
|
+ public AjaxResult remove(@PathVariable List<Long> ids) {
|
|
|
bizReturnReceiptService.removeBatchByIds(ids);
|
|
|
List<BizReturnReceiptDetail> bizReturnReceiptDetailList = bizReturnReceiptDetailService.query().in("master_id", ids).list();
|
|
|
List<Long> bizReturnReceiptDetailIds = bizReturnReceiptDetailList.stream().map(BizReturnReceiptDetail::getId).collect(Collectors.toList());
|
|
@@ -327,7 +325,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
|
|
|
/** 正常打印 **/
|
|
|
//查询回收单数据
|
|
|
- bizReturnReceipt=bizReturnReceiptService.getById(bizReturnReceipt);
|
|
|
+ bizReturnReceipt = bizReturnReceiptService.getById(bizReturnReceipt);
|
|
|
BizSupplier supplier = bizSupplierService.query().eq("id", bizReturnReceipt.getSupplierId()).list().get(0);
|
|
|
bizReturnReceipt.setSupplierCode(supplier.getCode());
|
|
|
//查询回收单明细
|
|
@@ -397,8 +395,6 @@ public class BizReturnReceiptController extends BaseController
|
|
|
));
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
//因为新箱子保存的时候,是用“id|code,id|code”的字符串形式存储的所以查询的时候需要进行拆分
|
|
|
//如果保存的时候没有选择新箱子则会把旧箱号复制到新箱号中,所有不会有“|”所以下方需要进行判断
|
|
|
allDetailsStream.forEach(detail -> {
|
|
@@ -428,7 +424,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
List<List<BizReturnReceiptDetail>> list = new ArrayList<>();
|
|
|
|
|
|
// 使用 for-each 循环遍历 groupedByProductDescription
|
|
|
- for ( Map.Entry<String, List<BizReturnReceiptDetail>> entry : groupedByProductDescription.entrySet()) {
|
|
|
+ for (Map.Entry<String, List<BizReturnReceiptDetail>> entry : groupedByProductDescription.entrySet()) {
|
|
|
List<BizReturnReceiptDetail> details = entry.getValue(); // 获取对应的 List,即 Map 的值
|
|
|
// 用于临时存储每组数据的列表
|
|
|
List<BizReturnReceiptDetail> group = new ArrayList<>();
|
|
@@ -463,7 +459,6 @@ public class BizReturnReceiptController extends BaseController
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|
|
|
// 2024-11-22注释 修改为同发出单一致的逻辑
|
|
|
// //查询外协厂code
|
|
@@ -542,7 +537,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
|
|
|
|
|
|
Map<String, Object> paramMap = new HashMap<>();
|
|
|
- paramMap.put("returnReceipt" , bizReturnReceipt);
|
|
|
+ paramMap.put("returnReceipt", bizReturnReceipt);
|
|
|
Writer out = new StringWriter();
|
|
|
//获取模板地址
|
|
|
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("returnReceiptPdf.html");
|
|
@@ -552,7 +547,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
String templateContent = out.toString();
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
response.setContentType("application/pdf");
|
|
|
- String fileName ="外协收回明细";
|
|
|
+ String fileName = "外协收回明细";
|
|
|
response.setHeader("Content-Disposition", "filename=" + new String(fileName.getBytes()));
|
|
|
byte[] resources = PdfUtil.html2Pdf(templateContent);
|
|
|
ServletOutputStream outputStream = response.getOutputStream();
|
|
@@ -595,8 +590,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
@Log(title = "获取内部外协详情")
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:query')")
|
|
|
@GetMapping(value = "/interReceipt/{id}")
|
|
|
- public AjaxResult getInterInfo(@PathVariable("id") Long id)
|
|
|
- {
|
|
|
+ public AjaxResult getInterInfo(@PathVariable("id") Long id) {
|
|
|
// 根据 id 获取到收回订单
|
|
|
BizReturnReceipt returnReceipt = bizReturnReceiptService.getById(id);
|
|
|
|
|
@@ -633,7 +627,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
info.setOutsourceDetailId(detailList.get(0).getOutsourceDetailId());
|
|
|
info.setLotCode(lotCode);
|
|
|
info.setProductNum(detailList.get(0).getProductNum());
|
|
|
- info.setReceiptNum(detailList.get(detailList.size() -1).getReceiptNum());
|
|
|
+ info.setReceiptNum(detailList.get(detailList.size() - 1).getReceiptNum());
|
|
|
info.setNewCarrier(detailList.get(0).getNewCarrier());
|
|
|
info.setRemark(detailList.get(0).getRemark());
|
|
|
info.setProcessAlias(detailProcesses.stream()
|