Browse Source

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

# Conflicts:
#	fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
seyason 1 năm trước cách đây
mục cha
commit
65e4dbe5ab

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DepartmentController.java

@@ -87,8 +87,8 @@ public class DepartmentController {
      * name 部门名称
      */
     @RequestMapping("/edit")
-    public HttpRespMsg updateDepartment(@RequestParam Integer id, @RequestParam String name, String managerId, String reportAuditUserid,String otherManagerIds, HttpServletRequest request) {
-        return departmentService.updateDepartment(id, name, managerId, reportAuditUserid,otherManagerIds, request);
+    public HttpRespMsg updateDepartment(@RequestParam Integer id, @RequestParam String name, String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, HttpServletRequest request) {
+        return departmentService.updateDepartment(id, name, managerId, reportAuditUserid,otherManagerIds,pushToSap, request);
     }
 
     /**

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Department.java

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-03-01
+ * @since 2023-11-30
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -93,6 +93,12 @@ public class Department extends Model<Department> {
     @TableField("feishu_deptid")
     private String feishuDeptid;
 
+    /**
+     * 是否推送到SAP
+     */
+    @TableField("push_to_sap")
+    private Integer pushToSap;
+
 
     @Override
     protected Serializable pkVal() {

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/DepartmentVO.java

@@ -22,4 +22,5 @@ public class DepartmentVO {
     private List<HashMap> userList;
     private List<String> otherManagerIds;
     private Integer ddDeptid;
+    private Integer pushToSap;
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DepartmentService.java

@@ -20,7 +20,7 @@ import java.util.List;
 public interface DepartmentService extends IService<Department> {
     HttpRespMsg insertDepartment(String departmentName, Integer superiorId, String managerId, String reportAuditUserid,String otherManagerIds, HttpServletRequest request);
 
-    HttpRespMsg updateDepartment(Integer departmentId, String departmentName, String managerId, String reportAuditUserid,String otherManagerIds, HttpServletRequest request);
+    HttpRespMsg updateDepartment(Integer departmentId, String departmentName, String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, HttpServletRequest request);
 
     HttpRespMsg deleteDepartment(Integer departmentId, HttpServletRequest request);
 

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -134,7 +134,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
 
     //更新部门
     @Override
-    public HttpRespMsg updateDepartment(Integer departmentId, String departmentName,String managerId, String reportAuditUserid,String otherManagerIds, HttpServletRequest request) {
+    public HttpRespMsg updateDepartment(Integer departmentId, String departmentName,String managerId, String reportAuditUserid,String otherManagerIds,Integer pushToSap, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
@@ -150,6 +150,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                 String oldManagerId = department.getManagerId();
                 department.setDepartmentName(departmentName);
                 department.setManagerId(managerId);
+                department.setPushToSap(pushToSap);
                 department.setReportAuditUserid(reportAuditUserid);
 
                 //修改审批流中的部门名称
@@ -439,6 +440,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
                 .setLabel(department.getDepartmentName())
                 .setParentId(department.getSuperiorId())
                 .setOtherManagerIds(collect)
+                .setPushToSap(department.getPushToSap())
                 .setReportAuditUserid(department.getReportAuditUserid())
                 .setDdDeptid(department.getDdDeptid())
                 .setSeq(department.getSeq());

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -7385,6 +7385,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             employeeTime.setTimePeriod(timePeriod);
             employeeTime.setItemTypeCode("CN0001");
             employeeTime.setDuration(map.get("Duration")==null?"0":String.valueOf(map.get("Duration")));
+            if(map.get("ProjectElementID")==null||map.get("ServiceProductInternalID")==null){
+                continue;
+            }
             employeeTime.setProjectElementID(String.valueOf(map.get("ProjectElementID")));
             employeeTime.setServiceProductInternalID(String.valueOf(map.get("ServiceProductInternalID")));
             if(map.get("WorkDescriptionText")!=null){
@@ -7428,6 +7431,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 reportPushLog.setReportId(Integer.valueOf(String.valueOf(map.get("ReportId"))));
                 reportPushLog.setTargetSystem("SAP");
                 reportPushLog.setUuid(xmlResponseData.getEmployeeTime().getUUID());
+                addList.add(reportPushLog);
             }
         }
         if(addList.size()>0){
@@ -7436,8 +7440,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
-//    @Async
-    public void  cancelReportPushSap(String reportIds){
+    @Async    public void  cancelReportPushSap(String reportIds){
         if(!StringUtils.isEmpty(reportIds)){
             List<Integer> reportIdList = ListUtil.convertIntegerIdsArrayToList(reportIds);
             List<ReportPushLog> reportPushLogList = reportPushLogService.list(new LambdaQueryWrapper<ReportPushLog>().in(ReportPushLog::getReportId, reportIdList));
@@ -7476,6 +7479,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
                     if(StringUtils.isEmpty(xmlResponseData.getZDeleteEmployeeTime())){
                         log.error("推送取消考勤失败===》UUID:"+xmlRequestData.getZDeleteEmployeeTime().getEmployeeTimeUUID());
+                    }else {
+                        //删除推送记录
+                        reportPushLogService.removeById(reportId);
                     }
                 }
             }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -1727,7 +1727,7 @@ public class TimingTask {
     }
 
     //每天凌晨 3:00 获取创建的项目服务和项目数据  SAP---->工时管家
-    @Scheduled(cron = "0 0 2 ? * *")
+    @Scheduled(cron = "0 0 3 ? * *")
     public void syncProjectFromSap(){
         if(isDev){
             return;

+ 5 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/SyncSapUtils.java

@@ -52,7 +52,7 @@ public class SyncSapUtils {
                     service.setStartDate(startDate);
                     EndDate endDate=new EndDate();
                     endDate.setTimeZoneCode("UTC+8");
-                    endDate.setEndDate(String.valueOf(map.get("EndDate"))+"T00:00:00Z");
+                    endDate.setEndDate(String.valueOf(map.get("EndDate"))+"T23:59:59Z");
                     service.setEndDate(endDate);
                     service.setRemainingWork(String.valueOf(map.get("PlanWork")));
                     service.setOverDeliveryAllowedIndicator("true");
@@ -89,7 +89,7 @@ public class SyncSapUtils {
             }
             System.out.println(result);
             XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
-            if(StringUtils.isEmpty(xmlResponseData.getEmployeeTime())){
+            if(StringUtils.isEmpty(xmlResponseData.getZManageProjectTaskWork())){
                 log.error("推送失败===》项目编号:"+zManageProjectTaskWork.getProjectID());
                 continue;
             }
@@ -123,6 +123,9 @@ public class SyncSapUtils {
         employeeTime.setTimePeriod(timePeriod);
         employeeTime.setItemTypeCode("CN0001");
         employeeTime.setDuration(map.get("Duration")==null?"0":String.valueOf(map.get("Duration")));
+        if(map.get("ProjectElementID")==null||map.get("ServiceProductInternalID")==null){
+            return new XmlResponseData();
+        }
         employeeTime.setProjectElementID(String.valueOf(map.get("ProjectElementID")));
         employeeTime.setServiceProductInternalID(String.valueOf(map.get("ServiceProductInternalID")));
         if(map.get("WorkDescriptionText")!=null){

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DepartmentMapper.xml

@@ -15,11 +15,12 @@
         <result column="corpwx_deptpid" property="corpwxDeptpid" />
         <result column="dd_deptid" property="ddDeptid" />
         <result column="feishu_deptid" property="feishuDeptid" />
+        <result column="push_to_sap" property="pushToSap" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        department_id, department_name, seq, superior_id, company_id, manager_id, report_audit_userid, corpwx_deptid, corpwx_deptpid, dd_deptid, feishu_deptid
+        department_id, department_name, seq, superior_id, company_id, manager_id, report_audit_userid, corpwx_deptid, corpwx_deptpid, dd_deptid, feishu_deptid, push_to_sap
     </sql>
     <!--根据部门获取成本-->
     <select id="getCostByDepartment" resultType="java.util.Map">

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -954,10 +954,12 @@
         t.service_id as ServiceProductInternalID,r.content as WorkDescriptionText
         from report r
         left join user u on u.id=r.creator_id
+        left join department d on u.department_id=d.department_id
         left join project p on p.id=r.project_id
         left join task t on t.id=r.task_id
         left join task_group tg on tg.id=t.group_id
         where r.state=1
+        and d.push_to_sap=1
         and r.company_id=#{companyId}
         <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''">
             and r.create_date between #{startDate} and #{endDate}

+ 12 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -377,6 +377,13 @@
                     </el-select>
                     <selectCat :size="'medium'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.reportAuditUserid" :distinction="'5'" @selectCal="selectCal"></selectCat>
                 </el-form-item>
+                <!-- 是否推送到SAP -->
+                <el-form-item :label="'推送至SAP'" prop="pushToSap" v-if="user.companyId==3092">
+                   <el-radio-group v-model="depForm.pushToSap">
+                      <el-radio :label="1">是</el-radio>
+                      <el-radio :label="0">否</el-radio>
+                   </el-radio-group>
+                </el-form-item>
             </el-form>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="departmentVisible = false">{{ $t('btn.cancel') }}</el-button>
@@ -996,6 +1003,7 @@ export default {
         name: null,
         parentId: null,
         managerId: null,
+        pushToSap:'1',
       },
       depRules: {
         name: [{ required: true, message: this.$t('pleaseenterthedepartmentname'), trigger: "blur" }],
@@ -3014,6 +3022,7 @@ export default {
             parentId: that.depData.parentId,
             managerId: that.depData.managerId,
             reportAuditUserid: that.depData.reportAuditUserid,
+            pushToSap:that.depData.pushToSap
           }
           if(that.depData.otherManagerIds) {
             if(Array.isArray(that.depData.otherManagerIds)) {
@@ -3089,6 +3098,9 @@ export default {
           if (this.depForm.managerId) {
             form.managerId = this.depForm.managerId;
           }
+          if (this.depForm.pushToSap) {
+            form.pushToSap = this.depForm.pushToSap;
+          }
           // console.log(this.depForm)
           if (this.depForm.reportAuditUserid && this.user.timeType.needDeptAudit) {
             form.reportAuditUserid = this.depForm.reportAuditUserid;