From dbbc4da8539b7aa2f2cf0d5d33eda2f22603d0c4 Mon Sep 17 00:00:00 2001 From: "usama.jameel" Date: Thu, 2 Jan 2025 09:17:32 +0500 Subject: [PATCH] fixed bugs and add job card view, update summary table, --- .../controller/CuttingController.java | 15 ++++++++------- .../controller/ReportingController.java | 4 ++-- .../utopiaindustries/dao/ctp/FinishedItemDAO.java | 15 +++++++++++++++ .../StitchingItemsRestController.java | 9 +++++++-- .../service/InventoryService.java | 2 +- .../finishing/finished-item-segregation-form.js | 2 +- src/main/resources/static/js/job-card-form.js | 2 +- .../static/js/qc/finished-items-qc-form.js | 2 +- .../cutting/generate-master-barcode.html | 2 +- .../templates/cutting/inventory-transactions.html | 2 +- .../templates/cutting/receive-inventory.html | 4 ++-- src/main/resources/templates/job-card-view.html | 8 ++------ .../reporting/inventory-summary-sidebar.html | 4 ---- .../templates/reporting/inventory-summary.html | 14 ++++++++++++++ 14 files changed, 56 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/utopiaindustries/controller/CuttingController.java b/src/main/java/com/utopiaindustries/controller/CuttingController.java index 98bbb82..11a922c 100644 --- a/src/main/java/com/utopiaindustries/controller/CuttingController.java +++ b/src/main/java/com/utopiaindustries/controller/CuttingController.java @@ -117,15 +117,12 @@ public class CuttingController { @RequestParam( value = "start-date", required = false) String startDate, @RequestParam( value = "end-date", required = false) String endDate, @RequestParam( value = "count", required = false ) Long count, - Model model, RedirectAttributes redirectAttributes){ + Model model){ LocalDate startDate1 = StringUtils.isNullOrEmpty(startDate) ? LocalDate.now().minusDays(30) : LocalDate.parse(startDate); LocalDate endDate1 = StringUtils.isNullOrEmpty(endDate) ? LocalDate.now() : LocalDate.parse(endDate); model.addAttribute("bundles", bundleService.getBundles( id, sku, jobCardId, masterId, type, status, startDate1.toString(), endDate1.toString() ,count ) ); model.addAttribute("types", jobCardService.getAllPieceTypes() ); - if(exceptionCheck){ - redirectAttributes.addFlashAttribute("error", "Please Select At least One CheckBox." ); - } if(StringUtils.isNullOrEmpty( startDate) || StringUtils.isNullOrEmpty( endDate )){ return "redirect:/cutting/bundles?id=&sku=&jc-id=&master-id=&type=&status=0&start-date="+startDate1+"&end-date="+endDate1+"&count=100"; } @@ -139,11 +136,15 @@ public class CuttingController { @RequestParam(value = "start-date", required = false) String startDate, @RequestParam(value = "end-date", required = false) String endDate, @RequestParam(value = "count", required = false) Long count, - Model model ){ + @RequestParam( value = "exceptionCheck", required = false, defaultValue = "false") boolean exceptionCheck, + Model model, RedirectAttributes redirectAttributes ){ + if(exceptionCheck){ + redirectAttributes.addFlashAttribute("error", "Please Select At least One CheckBox." ); + } LocalDate startDate1 = StringUtils.isNullOrEmpty(startDate) ? LocalDate.now().minusDays(30) : LocalDate.parse(startDate); LocalDate endDate1 = StringUtils.isNullOrEmpty(endDate) ? LocalDate.now() : LocalDate.parse(endDate); model.addAttribute("masterBundles", bundleService.getMasterBundles( id, jobCardId, startDate1.toString(), endDate1.toString(), count ) ); - if(StringUtils.isNullOrEmpty( startDate) || StringUtils.isNullOrEmpty( endDate )){ + if(StringUtils.isNullOrEmpty( startDate) || StringUtils.isNullOrEmpty( endDate ) || exceptionCheck ){ return "redirect:/cutting/master-bundles?id=&jc-id=&start-date="+startDate1+"&end-date="+endDate1+"&count=100"; } return "/cutting/master-bundles"; @@ -161,7 +162,7 @@ public class CuttingController { public Object generateBarcode(@RequestParam( name = "ids", required = false ) Long[] ids, @RequestParam( name = "artifactType", required = true ) String artifactType ) throws Exception { if(ids == null){ - return "redirect:/cutting/bundles?exceptionCheck=true"; + return "redirect:/cutting/master-bundles?id=&jc-id=&start-date=2024-12-01&end-date=2024-12-31&count=100&exceptionCheck=true"; } return barcodeService.generateBarcodes( Arrays.asList( ids ), artifactType ); } diff --git a/src/main/java/com/utopiaindustries/controller/ReportingController.java b/src/main/java/com/utopiaindustries/controller/ReportingController.java index 4649ed9..9243511 100644 --- a/src/main/java/com/utopiaindustries/controller/ReportingController.java +++ b/src/main/java/com/utopiaindustries/controller/ReportingController.java @@ -34,8 +34,8 @@ public class ReportingController { Model model ){ Map>> getDataByFilteration = summaryInventoryReportService.findByFilter(itemId,sku,startDate,endDate); - LocalDate startDate1 = StringUtils.isNullOrEmpty(startDate) ? LocalDate.now().minusDays(7) : LocalDate.parse(startDate); - LocalDate endDate1 = StringUtils.isNullOrEmpty(endDate) ? LocalDate.now() : LocalDate.parse(endDate); + LocalDate startDate1 = StringUtils.isNullOrEmpty(startDate) ? LocalDate.now().minusDays(6) : LocalDate.parse(startDate); + LocalDate endDate1 = StringUtils.isNullOrEmpty(endDate) ? LocalDate.now().plusDays(1) : LocalDate.parse(endDate); ArrayList arrayList = generateDateList(startDate1,endDate1); model.addAttribute("dateLimits", arrayList); model.addAttribute("tableData", getDataByFilteration); diff --git a/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java b/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java index 7142c09..380df3e 100644 --- a/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java +++ b/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java @@ -2,6 +2,7 @@ package com.utopiaindustries.dao.ctp; import com.utopiaindustries.model.ctp.FinishedItem; import com.utopiaindustries.model.ctp.JobCard; +import com.utopiaindustries.model.ctp.StitchingOfflineItem; import com.utopiaindustries.util.KeyHolderFunctions; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; @@ -21,6 +22,7 @@ public class FinishedItemDAO { private final String TABLE_NAME = "cut_to_pack.finished_item"; private final String SELECT_QUERY = String.format( "SELECT * FROM %s WHERE id = :id", TABLE_NAME ); private final String SELECT_ALL_QUERY = String.format( "SELECT * FROM %s ORDER BY id DESC", TABLE_NAME ); + private final String SELECT_QUERY_BY_BARCODE_QA_STATUS = String.format( "SELECT case when EXISTS ( SELECT * FROM %s WHERE barcode = :barcode AND (qa_status = 'APPROVED' OR qa_status = 'WASHED') ) then true else false End as Result", TABLE_NAME ); private final String SELECT_QUERY_BY_JOB_CARD = String.format( "SELECT * FROM %s WHERE job_card_id = :job_card_id", TABLE_NAME ); private final String DELETE_QUERY = String.format( "DELETE FROM %s WHERE id = :id", TABLE_NAME ); private final String INSERT_QUERY = String.format( "INSERT INTO %s (id, item_id, sku, barcode, created_at, created_by, job_card_id, is_qa, stitched_item_id, is_segregated, qa_status) VALUES (:id, :item_id, :sku, :barcode, :created_at, :created_by, :job_card_id, :is_qa, :stitched_item_id, :is_segregated, :qa_status) ON DUPLICATE KEY UPDATE item_id = VALUES(item_id), sku = VALUES(sku), barcode = VALUES(barcode), created_at = VALUES(created_at), created_by = VALUES(created_by), job_card_id = VALUES(job_card_id), is_qa = VALUES(is_qa), stitched_item_id = VALUES(stitched_item_id), is_segregated = VALUES(is_segregated), qa_status = VALUES(qa_status)", TABLE_NAME ); @@ -157,4 +159,17 @@ public class FinishedItemDAO { params.addValue("stitched_item_ids", stitchedItemIds ); return namedParameterJdbcTemplate.query( SELECT_BY_STITCHED_ITEM_IDS, params, new FinishedItemRowMapper() ); } + + public List findByBarcodeAndApprovedStatus( List finishedItems ){ + List items = new ArrayList<>(); + for (StitchingOfflineItem item : finishedItems){ + MapSqlParameterSource params = new MapSqlParameterSource(); + params.addValue("barcode", item.getBarcode() ); + boolean check =Boolean.TRUE.equals(namedParameterJdbcTemplate.queryForObject( SELECT_QUERY_BY_BARCODE_QA_STATUS, params, Boolean.class )); + if(!check){ + items.add(item); + } + } + return items; + } } \ No newline at end of file diff --git a/src/main/java/com/utopiaindustries/restcontroller/StitchingItemsRestController.java b/src/main/java/com/utopiaindustries/restcontroller/StitchingItemsRestController.java index 2fd8b37..6fb18da 100644 --- a/src/main/java/com/utopiaindustries/restcontroller/StitchingItemsRestController.java +++ b/src/main/java/com/utopiaindustries/restcontroller/StitchingItemsRestController.java @@ -1,5 +1,6 @@ package com.utopiaindustries.restcontroller; +import com.utopiaindustries.dao.ctp.FinishedItemDAO; import com.utopiaindustries.dao.ctp.StitchingOfflineItemDAO; import com.utopiaindustries.model.ctp.StitchingOfflineItem; import org.springframework.web.bind.annotation.GetMapping; @@ -13,14 +14,18 @@ import java.util.List; @RequestMapping( "/rest/stitching-offline-items" ) public class StitchingItemsRestController { + private final FinishedItemDAO finishedItemDAO; + private final StitchingOfflineItemDAO stitchingOfflineItemDAO; - public StitchingItemsRestController(StitchingOfflineItemDAO stitchingOfflineItemDAO) { + public StitchingItemsRestController(StitchingOfflineItemDAO stitchingOfflineItemDAO, FinishedItemDAO finishedItemDAO) { this.stitchingOfflineItemDAO = stitchingOfflineItemDAO; + this.finishedItemDAO = finishedItemDAO; } @GetMapping( "/search" ) public List searchFinishedItems(@RequestParam( "term") String term ){ - return stitchingOfflineItemDAO.findByTerm( term ); + List items = stitchingOfflineItemDAO.findByTerm( term ); + return finishedItemDAO.findByBarcodeAndApprovedStatus(items); } } diff --git a/src/main/java/com/utopiaindustries/service/InventoryService.java b/src/main/java/com/utopiaindustries/service/InventoryService.java index 4cb57d1..659a53b 100644 --- a/src/main/java/com/utopiaindustries/service/InventoryService.java +++ b/src/main/java/com/utopiaindustries/service/InventoryService.java @@ -447,7 +447,7 @@ public class InventoryService { .stream( ) .collect( Collectors.toMap( InventoryTransactionLeg::getParentDocumentId, Function.identity( ))); - // get finished items from stitched items i f exists + // get finished items from stitched items if exists List preCreatedFinishedItemIds = finishedItemDAO.findByStitchedItemIds( stitchedItemIds ).stream( ). map( FinishedItem::getId ).collect( Collectors.toList( )); diff --git a/src/main/resources/static/js/finishing/finished-item-segregation-form.js b/src/main/resources/static/js/finishing/finished-item-segregation-form.js index 7677505..56af686 100644 --- a/src/main/resources/static/js/finishing/finished-item-segregation-form.js +++ b/src/main/resources/static/js/finishing/finished-item-segregation-form.js @@ -16,7 +16,7 @@ } }, template : ` - +
diff --git a/src/main/resources/static/js/job-card-form.js b/src/main/resources/static/js/job-card-form.js index 69ff2cf..3addcb1 100644 --- a/src/main/resources/static/js/job-card-form.js +++ b/src/main/resources/static/js/job-card-form.js @@ -191,7 +191,7 @@
- +
` diff --git a/src/main/resources/static/js/qc/finished-items-qc-form.js b/src/main/resources/static/js/qc/finished-items-qc-form.js index 2d3ddd9..2c3cdd9 100644 --- a/src/main/resources/static/js/qc/finished-items-qc-form.js +++ b/src/main/resources/static/js/qc/finished-items-qc-form.js @@ -15,7 +15,7 @@ } }, template: ` -
ID
+
diff --git a/src/main/resources/templates/cutting/generate-master-barcode.html b/src/main/resources/templates/cutting/generate-master-barcode.html index c87c2a5..026b0c2 100644 --- a/src/main/resources/templates/cutting/generate-master-barcode.html +++ b/src/main/resources/templates/cutting/generate-master-barcode.html @@ -36,7 +36,7 @@ v-bind:disabled="hasDuplicates() || bundles.length === 0"> Submit - Cancel + Cancel
ID