Преглед изворни кода

Merge branch '12.31外协分选发出'

ezhizao_zx пре 5 месеци
родитељ
комит
3faf19dce5

+ 35 - 0
src/main/java/cn/ezhizao/project/business/supplier/controller/BizSupplierController.java

@@ -10,6 +10,8 @@ import cn.ezhizao.project.business.outsourceBalanceAccount.domain.BizOutsourceBa
 import cn.ezhizao.project.business.outsourceBalanceAccount.service.IBizOutsourceBalanceAccountService;
 import cn.ezhizao.project.business.supplier.domain.*;
 import cn.ezhizao.project.business.supplier.service.*;
+import cn.ezhizao.project.system.domain.SysDept;
+import cn.ezhizao.project.system.service.ISysDeptService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import org.springframework.web.bind.annotation.*;
@@ -44,6 +46,8 @@ public class BizSupplierController extends BaseController {
     @Resource
     private IBizOutsourceBalanceAccountService iBizOutsourceBalanceAccountService;
     @Resource
+    private ISysDeptService sysDeptService;
+    @Resource
     private HttpServletRequest request;
 
     /**
@@ -62,6 +66,20 @@ public class BizSupplierController extends BaseController {
         return getDataTable(list);
     }
 
+    @Log(title = "外协工段选择外协商单位", businessType = BusinessType.SELECT)
+    @GetMapping("/listByDept")
+    public TableDataInfo listByDept(SysDept dept) throws NoSuchFieldException, IllegalAccessException, JsonProcessingException {
+
+        startPage();
+        List<BizSupplier> list = iBizSupplierService.getListByDept(dept);
+        return getDataTable(list);
+    }
+    @GetMapping(value = "/getOutsourceDept")
+    @Log(title = "查询内部外协工段", businessType = BusinessType.SELECT)
+    public AjaxResult getOutsourceDept(BizSupplier supplier) {
+        return success(iBizSupplierService.getOutsourceDept(supplier));
+    }
+
     /**
      * 获取外协商详细信息
      */
@@ -79,6 +97,7 @@ public class BizSupplierController extends BaseController {
     @Log(title = "外协商单位保存", businessType = BusinessType.INSERT)
     @PostMapping(value = "/save")
     public AjaxResult save(@RequestBody BizSupplier bizSupplier) throws NoSuchFieldException, IllegalAccessException, JsonProcessingException {
+
         final String tenantId = request.getHeader("tenantId");
         bizSupplier.setTenantId(Long.valueOf(tenantId));
 
@@ -94,6 +113,22 @@ public class BizSupplierController extends BaseController {
             if (!supplierList.isEmpty()) {
                 return AjaxResult.error("助记码不能重复");
             }
+        } else {
+            BizSupplier prev = iBizSupplierService.getById(bizSupplier.getId());
+            if (!prev.getIsInnerOutsource().equals(bizSupplier.getIsInnerOutsource()) && prev.getIsInnerOutsource().equals(1)) {
+                // 判断是否所有发出单都收回
+                if (!iBizSupplierService.checkAllReturn(bizSupplier)) {
+                    return AjaxResult.error("有发出单未收回,不能修改");
+                }
+                // 修改工段关联的外协
+                SysDept conditions = new SysDept();
+                conditions.setSupplierId(bizSupplier.getId());
+                List<SysDept> sysDepts = sysDeptService.selectDeptList(conditions);
+                sysDepts.forEach(l -> {
+                    l.setSupplierId(0L);
+                    sysDeptService.updateDept(l);
+                });
+            }
         }
         long currentSupplierId = 0L;
 

+ 6 - 0
src/main/java/cn/ezhizao/project/business/supplier/domain/BizSupplier.java

@@ -65,4 +65,10 @@ public class BizSupplier extends BaseEntity {
     @TableField(exist = false)
     private String contactPhoneNumber;
     private BigDecimal freightPrice;
+    @TableField(exist = false)
+    private Long outsourceDeptId;
+    @TableField(exist = false)
+    private String outsourceDeptName;
+    @ApiModelProperty("内部外协")
+    private Integer isInnerOutsource;
 }

+ 5 - 0
src/main/java/cn/ezhizao/project/business/supplier/mapper/BizSupplierMapper.java

@@ -2,6 +2,7 @@ package cn.ezhizao.project.business.supplier.mapper;
 
 import cn.ezhizao.project.business.supplier.domain.BizSupplier;
 import cn.ezhizao.project.business.supplier.domain.BizSupplierUser;
+import cn.ezhizao.project.system.domain.SysDept;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 import java.util.List;
@@ -24,4 +25,8 @@ public interface BizSupplierMapper extends BaseMapper<BizSupplier> {
     public int physicalDelete(BizSupplier bizSupplier);
 
     public List<BizSupplier> getList(BizSupplier data);
+    public List<BizSupplier> getListByDept(SysDept data);
+    public List<BizSupplier> getOutsourceDept(BizSupplier data);
+
+    boolean checkAllReturn(BizSupplier bizSupplier);
 }

+ 5 - 0
src/main/java/cn/ezhizao/project/business/supplier/service/IBizSupplierService.java

@@ -2,6 +2,7 @@ package cn.ezhizao.project.business.supplier.service;
 
 import cn.ezhizao.project.business.supplier.domain.BizSupplier;
 import cn.ezhizao.project.business.supplier.domain.BizSupplierUser;
+import cn.ezhizao.project.system.domain.SysDept;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
@@ -24,4 +25,8 @@ public interface IBizSupplierService extends IService<BizSupplier> {
     int physicalDelete(BizSupplier bizCarrier);
 
     List<BizSupplier> getList(BizSupplier data);
+    List<BizSupplier> getListByDept(SysDept data);
+    List<BizSupplier> getOutsourceDept(BizSupplier data);
+
+    boolean checkAllReturn(BizSupplier bizSupplier);
 }

+ 16 - 0
src/main/java/cn/ezhizao/project/business/supplier/service/impl/BizSupplierServiceImpl.java

@@ -4,6 +4,7 @@ import cn.ezhizao.project.business.supplier.domain.BizSupplier;
 import cn.ezhizao.project.business.supplier.domain.BizSupplierUser;
 import cn.ezhizao.project.business.supplier.mapper.BizSupplierMapper;
 import cn.ezhizao.project.business.supplier.service.IBizSupplierService;
+import cn.ezhizao.project.system.domain.SysDept;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -39,4 +40,19 @@ public class BizSupplierServiceImpl extends ServiceImpl<BizSupplierMapper, BizSu
         return bizSupplierMapper.getList(data);
     }
 
+    @Override
+    public List<BizSupplier> getListByDept(SysDept data) {
+        return bizSupplierMapper.getListByDept(data);
+    }
+
+    @Override
+    public List<BizSupplier> getOutsourceDept(BizSupplier data) {
+        return bizSupplierMapper.getOutsourceDept(data);
+    }
+
+    @Override
+    public boolean checkAllReturn(BizSupplier bizSupplier) {
+        return bizSupplierMapper.checkAllReturn(bizSupplier);
+    }
+
 }

+ 1 - 1
src/main/java/cn/ezhizao/project/system/controller/SysUserController.java

@@ -239,7 +239,7 @@ public class SysUserController extends BaseController {
         List<SysRole> roles = roleService.selectRoleAll();
         ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         ajax.put("posts", postService.selectPostAll());
-        if (StringUtils.isNotNull(userId)) {
+        if (StringUtils.isNotNull(userId) && userId>0) {
             SysUser sysUser = userService.selectUserById(userId);
             ajax.put(AjaxResult.DATA_TAG, sysUser);
             ajax.put("postIds", postService.selectPostListByUserId(userId));

+ 58 - 0
src/main/java/cn/ezhizao/project/system/domain/SysDept.java

@@ -110,6 +110,26 @@ public class SysDept extends BaseEntity {
     @TableField(exist = false)
     private String userName;
     private Integer isSortPackaging;
+    @TableField(exist = false)
+    private String name;
+    @TableField(exist = false)
+    private String mnemonicCode;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getMnemonicCode() {
+        return mnemonicCode;
+    }
+
+    public void setMnemonicCode(String mnemonicCode) {
+        this.mnemonicCode = mnemonicCode;
+    }
 
     public Integer getIsSortPackaging() {
         return isSortPackaging;
@@ -191,6 +211,44 @@ public class SysDept extends BaseEntity {
     @TableField(exist = false)
     private Long dayworkId;
     private Integer isCentralizedTurnover;
+    private Integer isOutsourcing;
+    private Long supplierId;
+    @TableField(exist =false)
+    private String supplierName;
+    @TableField(exist = false)
+    private Integer isInnerOutsource;
+
+    public Integer getIsInnerOutsource() {
+        return isInnerOutsource;
+    }
+
+    public void setIsInnerOutsource(Integer isInnerOutsource) {
+        this.isInnerOutsource = isInnerOutsource;
+    }
+
+    public String getSupplierName() {
+        return supplierName;
+    }
+
+    public void setSupplierName(String supplierName) {
+        this.supplierName = supplierName;
+    }
+
+    public Integer getIsOutsourcing() {
+        return isOutsourcing;
+    }
+
+    public void setIsOutsourcing(Integer isOutsourcing) {
+        this.isOutsourcing = isOutsourcing;
+    }
+
+    public Long getSupplierId() {
+        return supplierId;
+    }
+
+    public void setSupplierId(Long supplierId) {
+        this.supplierId = supplierId;
+    }
 
     public Integer getIsCentralizedTurnover() {
         return isCentralizedTurnover;

+ 23 - 0
src/main/resources/mybatis/business/supplier/BizSupplierMapper.xml

@@ -28,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
             t1.deleted = 0
             <if test="tenantId != null and tenantId != 0"> AND t1.tenant_id = #{tenantId}</if>
+            <if test="isInnerOutsource != null "> AND t1.is_inner_outsource = #{isInnerOutsource}</if>
             <if test="name != null and name != ''"> AND t1.name LIKE CONCAT('%', #{name}, '%')</if>
             <if test="mnemonicCode != null and mnemonicCode != ''"> AND t1.mnemonic_code LIKE CONCAT('%', #{mnemonicCode}, '%')</if>
             <if test="code != null and code != ''"> AND t1.code LIKE CONCAT('%', #{code}, '%')</if>
@@ -35,6 +36,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
 
     </select>
+    <select id="getListByDept" resultMap="BizSupplierResult">
+        select * from biz_supplier
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            id not in (select supplier_id from sys_dept where del_flag = 0 and dept_id != #{deptId} ) and
+             deleted = 0 and is_inner_outsource = 1
+            <if test="tenantId != null and tenantId != 0"> AND tenant_id = #{tenantId}</if>
+            <if test="isInnerOutsource != null "> AND is_inner_outsource = #{isInnerOutsource}</if>
+            <if test="name != null and name != ''"> AND name LIKE CONCAT('%', #{name}, '%')</if>
+            <if test="mnemonicCode != null and mnemonicCode != ''"> AND mnemonic_code LIKE CONCAT('%', #{mnemonicCode}, '%')</if>
+            <if test="code != null and code != ''"> AND code LIKE CONCAT('%', #{code}, '%')</if>
+
+        </trim>
+
+    </select>
+    <select id="getOutsourceDept" resultMap="BizSupplierResult">
+        select t2.*,t1.dept_id as outsourceDeptId,t1.dept_name as outsourceDeptName from sys_dept t1 left join biz_supplier t2 on t1.supplier_id = t2.id where
+        t1.is_outsourcing = 1 and t1.del_flag = 0 and t2.deleted = 0
+    </select>
 
     <delete id="physicalDelete">
         DELETE FROM biz_supplier
@@ -45,4 +64,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        <!-- 删除条件为其他外键可以在这里加 -->
         </trim>
     </delete>
+
+    <select id="checkAllReturn" resultType="java.lang.Boolean">
+        select  case when count(1) > 0 then false else true end from biz_outsourced_order_detail t left join biz_return_receipt_detail r on r.outsource_detail_id = t.id and r.deleted = 0 and r.is_audit = 1 where t.deleted = 0 and t.supplier_id = #{id} and r.id is null
+    </select>
 </mapper>

+ 12 - 1
src/main/resources/mybatis/system/SysDeptMapper.xml

@@ -70,6 +70,9 @@
 		<if test="workshopId != null  and workshopId != 0">
 			AND d.workshop_id = #{workshopId}
 		</if>
+		<if test="supplierId != null">
+			AND d.supplier_id = #{supplierId}
+		</if>
 		<if test="hasPackageLine != null and hasPackageLine == 1">
 			AND exists (select 1 from biz_package_resource_group prg where prg.deleted = 0 and prg.dept_id = d.dept_id)
 		</if>
@@ -141,7 +144,9 @@
 
 	<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
 		select d.type,d.dept_id,d.is_work_section,d.is_sort_packaging,d.tenant_id,d.parent_id, d.ancestors, d.dept_name,d.dept_code, d.order_num, d.phone, d.email, d.status,d.equiment_flag,d.auto_allocation,
-			   (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
+		d.supplier_id,d.is_outsourcing,
+			   (select dept_name from sys_dept where dept_id = d.parent_id) parent_name,
+				(select name from biz_supplier where id = d.supplier_id) supplier_name
 		from sys_dept d
 		where d.dept_id = #{deptId}
 	</select>
@@ -196,6 +201,8 @@
 		<if test="phone != null and phone != ''">phone,</if>
 		<if test="email != null and email != ''">email,</if>
 		<if test="status != null">status,</if>
+		<if test="isOutsourcing != null">is_outsourcing,</if>
+		<if test="supplierId != null">supplier_id,</if>
 		<if test="createBy != null and createBy != ''">create_by,</if>
 		<if test="type != null ">type,</if>
 		create_time
@@ -214,6 +221,8 @@
 		<if test="phone != null and phone != ''">#{phone},</if>
 		<if test="email != null and email != ''">#{email},</if>
 		<if test="status != null">#{status},</if>
+		<if test="isOutsourcing != null">#{isOutsourcing},</if>
+		<if test="supplierId != null">#{supplierId},</if>
 		<if test="createBy != null and createBy != ''">#{createBy},</if>
 		<if test="type != null">#{type},</if>
 		sysdate()
@@ -237,6 +246,8 @@
 			<if test="phone != null">phone = #{phone},</if>
 			<if test="email != null">email = #{email},</if>
 			<if test="status != null and status != ''">status = #{status},</if>
+			<if test="isOutsourcing != null">is_outsourcing = #{isOutsourcing},</if>
+			<if test="supplierId != null">supplier_id = #{supplierId},</if>
 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
 			<if test="type != null">type = #{type},</if>
 			update_time = sysdate()