Browse Source

Merge remote-tracking branch 'origin/master'

ezhizao_zx 10 months ago
parent
commit
6de3c34798

+ 40 - 8
src/main/java/cn/ezhizao/project/business/controller/BizSpecialDayworkController.java

@@ -94,10 +94,6 @@ public class BizSpecialDayworkController extends BaseController {
     private IBizProductionPlanDetailService bizProductionPlanDetailService;
     @Resource
     private IBizFurnaceNoInfoService bizFurnaceNoInfoService;
-
-    @Resource
-    private ISysDeptUserService deptUserService;
-
     @Resource
     private IBizLotService bizLotService;
 
@@ -819,14 +815,24 @@ public class BizSpecialDayworkController extends BaseController {
         /**
          *  取消周转时需要将最新一条的报工周转数据删除,删除后将原工段修改到daywork中
          */
+
+        //查询出所有周转批次的箱子
+        List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("is_changed", 0).eq("process_inspection_id", 0L).in("daywork_id",bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList()) ).list();
+        // 再根据上面获得到的数据,通过箱子的id(carrier_id),再进行查找,有多少个批次与该箱子绑定,这是因为存在一箱多批的情况。这样就获得到了所有的批次
+        List<BizDayworkCarrier> allCarries = bizDayworkCarrierService.query().eq("process_inspection_id", 0L).eq("is_changed", 0).in("carrier_id", dayworkCarriers.isEmpty() ? Collections.singletonList(0L) : dayworkCarriers.stream().map(BizDayworkCarrier::getCarrierId).collect(Collectors.toList())).list();
+
+        //比较查询出的数据查看是否存在一箱多批次并且不在此次周转申请列表中
+        List<Long> dayworkIds = allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList());
+        List<BizDaywork> bizDayworkList=bizDayworkService.query().in("id",dayworkIds).list();
+
         //先根据dayworkId查询出所有的报工数据按照创建时间倒序排列
-        List<BizDayworkItem> dayworkItems = bizDayworkItemService.query().in("daywork_id", bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList()))
-                .eq("is_special", 1).orderByDesc("create_time").list();
+        List<BizDayworkItem> dayworkItems = bizDayworkItemService.query().in("daywork_id", dayworkIds).orderByDesc("create_time").list();
+
         Map<Long, List<BizDayworkItem>> groupedByDayworkId = dayworkItems.stream()
                 .collect(Collectors.groupingBy(BizDayworkItem::getDayworkId));
         List<BizDayworkItem> cancelItems = new ArrayList<>();
         //因为周转信息只有一条且一定是最新的一条,所以直接将按照daywork分组的数据取第一条就是周转信息,将第二条数据的工段信息赋值给daywork
-        for (BizDaywork daywork : bizDayworks) {
+        for (BizDaywork daywork : bizDayworkList) {
             List<BizDayworkItem> items = groupedByDayworkId.get(daywork.getId());
             if (!items.isEmpty()) {
                 daywork.setDeptId(items.get(1).getDeptId());
@@ -878,6 +884,8 @@ public class BizSpecialDayworkController extends BaseController {
                 return error(booleanStringMap.get(false));
             }
 
+            long oneMillisecond = 1000;
+
             //保存报工信息
             for (int i = 0; i < itemList.size(); i++) {
                 itemList.get(i).setDayworkId(bizDaywork.getId());
@@ -890,9 +898,14 @@ public class BizSpecialDayworkController extends BaseController {
                 Date endTime = itemList.get(i).getEndTime();
                 // 计算时间差(毫秒)
                 long diffInMilliSeconds = endTime.getTime() - startTime.getTime();
-
                 itemList.get(i).setWorkingHours(diffInMilliSeconds);
 
+                Date createTime=new Date();
+                long createTimeSeconds=createTime.getTime();
+                createTimeSeconds+=(oneMillisecond*i);
+                Date newTime=new Date(createTimeSeconds);
+                itemList.get(i).setCreateTime(newTime);
+
                 //判断工序是否完成,如果工序完成,将最后一条报工状态修改为3
                 if (bizDaywork.getItemStatus().equals(3) && i == itemList.size() - 1) {
                     itemList.get(i).setStatus("3");
@@ -958,6 +971,8 @@ public class BizSpecialDayworkController extends BaseController {
                 return error(booleanStringMap.get(false));
             }
 
+            long oneMillisecond = 1000;
+
             //保存报工信息
             for (int i = 0; i < itemList.size(); i++) {
                 itemList.get(i).setDayworkId(daywork.getId());
@@ -968,6 +983,12 @@ public class BizSpecialDayworkController extends BaseController {
                 itemList.get(i).setProcessId(bizDaywork.getProcessId());
                 Date startTime = itemList.get(i).getStartTime();
 
+                Date createTime=new Date();
+                long createTimeSeconds=createTime.getTime();
+                createTimeSeconds+=(oneMillisecond*i);
+                Date newTime=new Date(createTimeSeconds);
+                itemList.get(i).setCreateTime(newTime);
+
                 Date endTime = itemList.get(i).getEndTime();
                 // 计算时间差(毫秒)
                 long diffInMilliSeconds = endTime.getTime() - startTime.getTime();
@@ -980,6 +1001,7 @@ public class BizSpecialDayworkController extends BaseController {
                     itemList.get(i).setStatus("2");
                 }
             }
+
             bizDayworkItemService.saveBatch(itemList);
 
             //保存废品信息
@@ -1054,6 +1076,8 @@ public class BizSpecialDayworkController extends BaseController {
         bizDayworkItemService.removeBatchByIds(filteredOldItems);
         bizDayworkItemRejectService.removeSpecial(dayworkIds);
 
+
+        long oneMillisecond = 1000;
         //保存报工信息
         for (int i = 0; i < itemList.size(); i++) {
             if (bizDaywork.getSpecialIsFirst().equals(1)) {
@@ -1063,6 +1087,14 @@ public class BizSpecialDayworkController extends BaseController {
             itemList.get(i).setIsSpecial(1);
             Date startTime = itemList.get(i).getStartTime();
             Date endTime = itemList.get(i).getEndTime();
+            if(itemList.get(i).getId()==null){
+                 // 1毫秒
+                Date createTime=new Date();
+                long createTimeSeconds=createTime.getTime();
+                createTimeSeconds+=(oneMillisecond*i);
+                Date newTime=new Date(createTimeSeconds);
+                itemList.get(i).setCreateTime(newTime);
+            }
             // 计算时间差(毫秒)
             long diffInMilliSeconds = endTime.getTime() - startTime.getTime();
             itemList.get(i).setWorkingHours(diffInMilliSeconds);

+ 0 - 3
src/main/resources/mybatis/business/BizDayworkItemMapper.xml

@@ -71,9 +71,6 @@
             <if test="specialStartTime != null "> AND
                 dw.start_time
                 >= #{specialStartTime}</if>
-<!--            <if test="deptId != null "> AND-->
-<!--                dw.dept_id-->
-<!--                = #{deptId}</if>-->
             <if test="specialEndTime != null "> AND
                 dw.start_time &lt;= #{specialEndTime}</if>
             <if test="lotCode != null and  lotCode != ''">AND   dw.lot_code LIKE CONCAT('%', #{lotCode}, '%') </if>

+ 1 - 1
src/main/resources/mybatis/business/BizDayworkMapper.xml

@@ -255,7 +255,7 @@
     <select id="selectScreenDaywork" resultMap="BizDayworkResult" parameterType="list">
         SELECT
         d.*,
-        (SELECT status FROM biz_daywork_item WHERE daywork_id=d.id AND deleted=0 ORDER BY id DESC LIMIT 1)AS item_status,
+        (SELECT status FROM biz_daywork_item WHERE daywork_id=d.id AND deleted=0 ORDER BY create_time DESC LIMIT 1)AS item_status,
         (SELECT technological_process_detail_id FROM biz_daywork_item WHERE daywork_id=d.id AND deleted=0 ORDER BY create_time DESC LIMIT 1)AS special_process_id,
         (SELECT special_is_first FROM biz_daywork_item WHERE daywork_id=d.id AND deleted=0 ORDER BY id DESC LIMIT 1)AS special_is_first
         FROM