ly před 1 rokem
rodič
revize
8385e35892

+ 1 - 1
src/main/java/cn/ezhizao/framework/mybaits/MyMetaObjectHandler.java

@@ -24,7 +24,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
 
     @Override
     public void insertFill(MetaObject metaObject) {
-        SysUser user = SecurityUtils.getLoginUser().getUser();
+//        SysUser user = SecurityUtils.getLoginUser().getUser();
         this.setFieldValByName(CREATE_BY_FIELD_NAME, SecurityUtils.getUserId()==null?1:SecurityUtils.getUserId(), metaObject);
         this.setFieldValByName(CREATE_TIME_FIELD_NAME, new Timestamp(System.currentTimeMillis()), metaObject);
 //        if(this.getFieldValByName(MAIN_ACCOUNT_SETS_ID, metaObject) == null) this.setFieldValByName(MAIN_ACCOUNT_SETS_ID, user.getMainAccountSetsId(), metaObject);

+ 87 - 8
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderCurrentController.java

@@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -358,6 +359,7 @@ public class WorkOrderCurrentController extends BaseController {
 
             newEntrustList.forEach(f -> {
                 try {
+
                     BizCompany company = bizCompanyService.getOne(new LambdaQueryWrapper<BizCompany>()
                             .eq(BizCompany::getTenantId, tenantId)
                             .eq(BizCompany::getName, f.getCompanyName().trim()));
@@ -365,11 +367,20 @@ public class WorkOrderCurrentController extends BaseController {
                         failureNum.getAndIncrement();
                         failureMsg.append("<br/>" + "序号为" + f.getNo() + "," + "客户 " + f.getCompanyName() + "不存在");
                     } else {
+                        Long companyId = company.getId();
+                        List<BizEntrust> list = bizEntrustService.list(new LambdaQueryWrapper<BizEntrust>()
+                                .eq(BizEntrust::getCompanyId, companyId)
+                                .eq(BizEntrust::getWorkMonth, workMonth));
+                        if (!CollectionUtils.isEmpty(list)) {
+                            failureNum.getAndIncrement();
+                            failureMsg.append("<br/>" + "序号为" + f.getNo() + "," + "客户 " + f.getCompanyName() + "已存在委托或部分委托。");
+                        }
                         f.setCompanyId(company.getId());
+
                     }
 
                 } catch (Exception e) {
-                    System.out.println(e);
+                    e.printStackTrace();
                 }
 
             });
@@ -480,11 +491,10 @@ public class WorkOrderCurrentController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:trans')")
     @GetMapping("/transNext")
-    @Anonymous
     @Transactional(rollbackFor = Exception.class)
-    public AjaxResult transNext(Long tenantId) {
+    public AjaxResult transNext() {
         // 将本月改为上一月,将下月改成本月,添加新月
-        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", tenantId).ge("type", 0).list();
+        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).ge("type", 0).list();
         SysCurrentMonth currentMonth = months.stream().filter(v -> v.getType().equals(0)).findFirst().orElse(new SysCurrentMonth());
         if (currentMonth.getId() == null) {
             throw new ServiceException("未设定本月");
@@ -496,12 +506,12 @@ public class WorkOrderCurrentController extends BaseController {
         DateTime nextMonthDate = DateTime.of(nextMonth.getYear() + nextMonth.getMonth() + "01", "yyyyMMdd");
         newNextMonth.setMonth(nextMonthDate.offsetNew(DateField.MONTH, 1).toString("MM"));
         newNextMonth.setYear(nextMonthDate.offsetNew(DateField.MONTH, 1).toString("yyyy"));
-        newNextMonth.setTenantId(tenantId);
+        newNextMonth.setTenantId(getTenantId());
         newNextMonth.setType(1);
 
         // 获取上月的委托
-        List<BizEntrust> entrusts = bizEntrustService.query().eq("tenant_id", tenantId).eq("work_month", nextMonthDate.toSqlDate()).list();
-        List<BizEntrust> entr = new ArrayList<>(entrusts);
+        List<BizEntrust> entrusts = bizEntrustService.query().eq("tenant_id", getTenantId()).eq("work_month", nextMonthDate.toSqlDate()).list();
+        List<BizEntrust> entr = new ArrayList<>(entrusts) ;
         //将到截至月的委托去掉
         for (BizEntrust b : entr) {
             List<BizWorkOrder> workOrder = bizWorkOrderService.query().eq("id", b.getWorkOrderId()).list();
@@ -515,7 +525,7 @@ public class WorkOrderCurrentController extends BaseController {
             calendar.set(Calendar.DAY_OF_MONTH, 1);
             Date currentMonthDate = new java.sql.Date(calendar.getTime().getTime());
             if (!workOrder.isEmpty()) {
-                if (workOrder.get(0).getIsStop() == 1 || (currentMonthDate == workOrder.get(0).getEndMonth())) {
+                if(workOrder.get(0).getIsStop() == 1 || (currentMonthDate == workOrder.get(0).getEndMonth())){
                     entrusts.removeIf(s -> s.getWorkOrderId().equals(b.getWorkOrderId()));
                 }
             }
@@ -535,6 +545,75 @@ public class WorkOrderCurrentController extends BaseController {
         );
     }
 
+    @PostMapping("/transNextTask")
+    @Anonymous
+    @Transactional(rollbackFor = Exception.class)
+    public void transNextTask(@RequestBody List<Tenant> storeList) {
+        for (Tenant tenant : storeList) {
+            Long tenantId = tenant.getId();
+            // 将本月改为上一月,将下月改成本月,添加新月
+            List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", tenantId).ge("type", 0).list();
+            SysCurrentMonth currentMonth = months.stream().filter(v -> v.getType().equals(0)).findFirst().orElse(new SysCurrentMonth());
+            if (currentMonth.getId() == null) {
+//                throw new ServiceException("未设定本月");
+                continue;
+            }
+            SysCurrentMonth nextMonth = months.stream().filter(v -> v.getType().equals(1)).findFirst().orElse(new SysCurrentMonth());
+            SysCurrentMonth newNextMonth = new SysCurrentMonth();
+            currentMonth.setType(-1);
+            nextMonth.setType(0);
+            DateTime nextMonthDate = DateTime.of(nextMonth.getYear() + nextMonth.getMonth() + "01", "yyyyMMdd");
+            newNextMonth.setMonth(nextMonthDate.offsetNew(DateField.MONTH, 1).toString("MM"));
+            newNextMonth.setYear(nextMonthDate.offsetNew(DateField.MONTH, 1).toString("yyyy"));
+            newNextMonth.setTenantId(tenantId);
+            newNextMonth.setType(1);
+
+            // 获取上月的委托
+            List<BizEntrust> entrusts = bizEntrustService.query().eq("tenant_id", tenantId).eq("work_month", nextMonthDate.toSqlDate()).list();
+            List<BizEntrust> entr = new ArrayList<>(entrusts);
+            //将到截至月的委托去掉
+            for (BizEntrust b : entr) {
+                List<BizWorkOrder> workOrder = bizWorkOrderService.query().eq("id", b.getWorkOrderId()).list();
+
+                Calendar calendar = Calendar.getInstance();
+                // 设置年份
+                calendar.set(Calendar.YEAR, Integer.parseInt(months.get(0).getYear()));
+                // 设置月份为(注意:月份是从0开始的,所以要减1)
+                calendar.set(Calendar.MONTH, Integer.parseInt(months.get(0).getMonth()) - 1);
+                // 设置日期
+                calendar.set(Calendar.DAY_OF_MONTH, 1);
+                Date currentMonthDate = new java.sql.Date(calendar.getTime().getTime());
+                if (!workOrder.isEmpty()) {
+                    if (workOrder.get(0).getIsStop() == 1 || (currentMonthDate == workOrder.get(0).getEndMonth())) {
+                        entrusts.removeIf(s -> s.getWorkOrderId().equals(b.getWorkOrderId()));
+                    }
+                }
+            }
+            entrusts.forEach(l -> {
+                DateTime currentWorkMonth = DateTime.of(l.getWorkMonth());
+                DateTime currentMonthDate = DateTime.of(l.getCurrentMonth());
+                l.setWorkMonth(currentWorkMonth.offsetNew(DateField.MONTH, 1).toSqlDate());
+                l.setCurrentMonth(currentMonthDate.offsetNew(DateField.MONTH, 1).toSqlDate());
+                l.setId(null);
+            });
+
+            toAjax(
+                    (currentMonth.getId() == null || sysCurrentMonthService.updateById(currentMonth)) &&
+                            (nextMonth.getId() == null || sysCurrentMonthService.updateById(nextMonth)) &&
+                            sysCurrentMonthService.save(newNextMonth) && (entrusts.isEmpty() || bizEntrustService.saveBatch(entrusts))
+            );
+        }
+
+    }
+    @Anonymous
+    @PostMapping("/test")
+    public void test(@RequestBody List<Tenant> storeList){
+        for (Tenant tenant : storeList) {
+            System.out.println(tenant.getId());
+            System.out.println(tenant.getAccountName());
+        }
+
+    }
 
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:trans')")
     @GetMapping("/transNextForFactory")

+ 1 - 0
src/main/java/cn/ezhizao/project/business/workOrder/domain/BizWorkOrder.java

@@ -256,4 +256,5 @@ public class BizWorkOrder extends BaseEntity {
     @TableField(exist = false)
     private Date workDate;
 
+
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/workOrder/domain/vo/Condition.java

@@ -16,4 +16,5 @@ public class Condition extends BaseEntity {
     private Long toTenantId;
     private String toAccountName;
     private String fromCompanyName;
+    private Long tenantId;
 }

+ 2 - 2
src/main/resources/mybatis/business/BizWorkOrderMapper.xml

@@ -153,10 +153,10 @@
             </if>
 
             <if test="date == null">
-                AND MONTH ( t1.current_month ) &lt;MONTH(CURRENT_DATE ())
+                AND MONTH ( t1.work_month ) &lt;MONTH(CURRENT_DATE ())
             </if>
             <if test="date != null">
-                AND t1.current_month = #{date}
+                AND t1.work_month = #{date}
             </if>
             <if test="companyName != null and companyName != ''">
                 AND t3.name like concat('%', #{companyName}, '%')